在JAVA中将图像文件转换成JPEG,通常使用下面的代码:
File __pngFile = new File("exportUnit.png"); File __jpgFile = new File("exportUnit.jpg"); writeJPEG(__pngFile, __jpgFile, 80); public static void writeJPEG(File $source, File $dest, int $quality) throws IOException { String __formatName = "jpeg"; BufferedImage __image = ImageIO.read($source); ImageWriter __writer = ImageIO.getImageWritersByFormatName(__formatName).next(); ImageWriteParam __writeParam = __writer.getDefaultWriteParam(); FileOutputStream __out = new FileOutputStream($dest); __writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); __writeParam.setCompressionQuality((float)$quality/100f); __writer.setOutput(ImageIO.createImageOutputStream(__out)); __writer.write(null, new IIOImage(__image, null, null), __writeParam); __out.flush(); __out.close(); __writer.dispose(); } |
但是,当被转换的文件是32位带Alpha通道的图像文件转换为JPEG的时候,会出现颜色错误。就像下面这样: 继续阅读 »



最新评论