Преобразование изображения приводит к красному изображению? - PullRequest
5 голосов
/ 22 января 2012

Я пытаюсь преобразовать изображение, перевернув его по горизонтали и изменив его размер.Проблема в том, что когда преобразование выполнено, цвета изображения становятся все странными, и они приобретают этот красноватый оттенок.Можно ли это как-то исправить, мне кажется, я где-то читал, что это может быть ошибка в библиотеке AWT, но я не уверен?

Вот код:

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class LocalImageSizeFlip {

public static void main(String[] args) {
    BufferedImage img = null;

    try {
        img = ImageIO.read(new File("C:\\picture.jpg"));
        AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
        tx.translate(0, -img.getHeight(null));
        AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
        img = op.filter(img, null);
        img = resize(img, 100, 75);
        File newFile = new File("newPicture.jpg");
        ImageIO.write(img, "JPEG", newFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private static BufferedImage resize(BufferedImage image, int width, int height) {
    BufferedImage resizedImage = new BufferedImage(width, height,
    BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = resizedImage.createGraphics();
    g.drawImage(image, 0, 0, width, height, null);
    g.dispose();
    return resizedImage;
    }   
}

Ответы [ 2 ]

6 голосов
/ 22 января 2012

Наличие изображения, приобретающего оттенок, обычно означает, что изображение воспроизводится с использованием неправильного цветового пространства, а Adobe RGB против sRGB является постоянным фаворитом.Попробуйте изменить TYPE_INT_ARGB на TYPE_INT_RGB в вашем коде.

0 голосов
/ 14 октября 2013

Вы также можете попробовать следующий тип: BufferedImage.TYPE_3BYTE_BGR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...