Чтение JPEG: ImageIO.read () портит цветовое пространство

Я пытаюсь читать, изменять масштаб и сохранять изображения в сервлете. Это соответствующий код:

BufferedImage image = ImageIO.read(file);

BufferedImage after = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
AffineTransform at = AffineTransform.getScaleInstance(factor, factor);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(image, null);

ImageIO.write(after, "JPG", file));

Исходный файл представляет собой обычный RGB-Jpeg, но когда я открываю и сохраняю файл, он выходит как CMYK-Jpeg. Это происходит, даже если я не перемасштабирую изображение, проблема заключается в простом открытии и закрытии изображения.

Когда я открываю PNG или GIF, все в порядке. Кто-нибудь знает, что здесь делать? Я ожидаю, что метод чтения ImageIO сохранит исходное цветовое пространство.

Если есть другой способ удобного чтения в формате JPEG?

Спасибо за любые предложения!

Ответы на вопрос(2)

Ваш ответ на вопрос