2011-03-14 99 views
0

我有一段代码可以压缩具有一定质量的jpg图像,但是当图像是png类型时,它们全部变成黑色。任何想法为什么以及如何解决它?这是我的代码。png文件压缩为jpeg时全黑。这是因为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){ 

    } 
} 

回答