相关疑难解决方法(0)

使用Java中的ImageIO设置jpg压缩级别

我正在使用javax.imageio.ImageIO保存BufferedImage为jpeg文件.特别是,我创建了以下Java函数:

public static void getScreenShot(BufferedImage capture, Path folder, String filename) {
        try {
            ImageIO.write(capture, "jpeg", new File(folder.toString()+"/"+filename+".jpg"));
        } catch (AWTException | IOException ex) {
            Logger.getLogger(ScreenShotMaker.class.getName()).log(Level.SEVERE, null, ex);
        }
}
Run Code Online (Sandbox Code Playgroud)

同样任何图像处理软件,我希望改变jpeg文件的压缩级别.但是,我正在寻找似乎缺少的这个选项ImageIO.

我可以设置压缩级别以及如何设置?

java jpeg image-compression javax.imageio

43
推荐指数
2
解决办法
4万
查看次数

Powermock imageio UnsatisfiedLinkError

在我的当前项目(jdk 1.6.0)中添加了powermock(1.5.6与Easymock 3.2的组合)之后,我在测试方法中遇到了一些测试失败,这些测试方法之前完全正常:

java.lang.UnsatisfiedLinkError:com.sun.imageio.plugins.jpeg.JPEGImageReader.initReaderIDs(Ljava/lang/Class; Ljava/lang/Class; Ljava/lang/Class;)V

以下代码失败:

BufferedImage img = null;
try {
    img = ImageIO.read(this.getClass().getResourceAsStream("/example.jpg"));
}
catch (IOException e) {
    fail(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

powermock页面已经有一个2009年的错误,但没有修复,没有解决方法.(回到32Bit是无稽之谈,因为这些方法没有电动摇摆工作)所以有人知道如何解决这个问题吗?

更新I:切换到32位是没有选择,除此之外,这不是问题.如果我不使用PowerMock,每个测试都在64Bit JVM中完美运行......

更新II:这里是请求的信息

更新III:扩展课程

  1. 要测试的类

    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.security.GeneralSecurityException;
    import java.security.cert.X509Certificate;
    import javax.imageio.ImageIO;
    import sun.security.x509.CertificateIssuerName;
    import sun.security.x509.CertificateSubjectName;
    import sun.security.x509.X500Name;
    import sun.security.x509.X509CertImpl;
    import sun.security.x509.X509CertInfo;
    
    public class App {
        private X509Certificate certificate = null;
    
        public ByteArrayOutputStream readImage() {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        BufferedImage img = null;
    try { …
    Run Code Online (Sandbox Code Playgroud)

java easymock powermock javax.imageio

2
推荐指数
1
解决办法
1587
查看次数