1
我對圖像文件的信息很少。將PNG轉換爲JPEG,使用壓縮質量,爲什麼是倒置的顏色?
爲了能夠PNG轉換爲JPEG在Java中,起初我用下面的代碼部分,PNG轉換爲JPEG:倒
典第1部分)
BufferedImage newBufferedImage = new BufferedImage(bufferedImageFile.getWidth(), bufferedImageFile.getHeight(),
BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(bufferedImageFile, 0, 0, Color.WHITE, null);
File retTempFile = MakeupFileUtil.createTempFile(fileName);
ImageIO.write(newBufferedImage, "jpg", retTempFile);
return retTempFile;
這將完成任務非常好,但輸出質量低於原始PNG圖像質量(比方說PNG質量是100,但JPEG質量是75)
然後,from this answer,我試過下面的代碼部分,它使用「壓縮質量」:
代碼第2部分)
JPEGImageWriteParam jpegParams = new JPEGImageWriteParam(null);
jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpegParams.setCompressionQuality(1f);
final ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
writer.setOutput(new FileImageOutputStream(jpegFile));
writer.write(null, new IIOImage(bufferedImageFile, null, null), jpegParams);
但是這一次,轉換JPEG文件得到了反轉的顏色。
這究竟是爲什麼?