【问题标题】:png file turn all black when compress to jpeg. Is it because PNG is lossless?png 文件在压缩为 jpeg 时全黑。是因为PNG是无损的吗?
【发布时间】:2011-07-15 08:00:17
【问题描述】:

我有一段代码可以压缩具有一定质量的jpg图像,但是当图像是png类型时,它们都变黑了。知道为什么以及如何解决它吗?这是我的代码。

public void compressImage(String filename, ServletContext servletContext) {
    //You first need to enumerate the image writers that are available to jpg
    Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
    //Then, choose the first image writer available
    ImageWriter writer = (ImageWriter) iter.next();
    //instantiate an ImageWriteParam object with default compression options
    ImageWriteParam iwp = writer.getDefaultWriteParam();
    //Set the compression quality
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwp.setCompressionQuality(0.5f);
    try {
        BufferedImage img = ImageIO.read(new File(filename));
        String destPath = "/Users/KingdomHeart/resources/scholar/compress/compress.jpg";
        File file = new File(destPath);
        FileImageOutputStream output = new FileImageOutputStream(file);
        writer.setOutput(output);
        IIOImage image = new IIOImage(img, null, null);
        writer.write(null, image, iwp);
        writer.dispose();
    }catch(IOException e){

    }
}

【问题讨论】:

    标签: java compression png jpeg javax.imageio


    【解决方案1】:

    这可能有您正在寻找的答案:Converting transparent gif / png to jpeg using java

    问题可能在于您使用的 PNG 具有一定的透明度。

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 2017-01-28
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2018-05-04
      • 2011-04-15
      • 2013-10-18
      相关资源
      最近更新 更多