2011-03-14 79 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){ 

    } 
} 

回答