У меня есть небольшая информация о файлах изображений.Преобразование 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, я попытался использовать часть кода, которая использует "Compression Качество":
код Часть 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 был перевернутый цвета.
Изображение После того, как код Часть 2 (JPEG):
Почему это происходит?