0
나는 jpeg 이미지를 입력으로받는 간단한 자바 프로그램을 가지고있다. 그 프로그램은 라인과 사각형을 그려서 저장한다. 선과 직사각형이 빨간색이 되길 원하지만 결과 이미지는 항상 검정, 흰색 또는 회색입니다. 그것은 내가 라인에 대해 설정 한 색상에 따라 다릅니다.왜 Java가 jpeg 이미지에 잘못된 색상 선을 그립니까?
는이 이런 이유는 ... 이해가 안 흰색 될 것 노란색과 검은 색이 될 것이다이 경우 라인에서 간단한 코드
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
public class Lines {
public static void main(String[] args) {
BufferedImage image = null;
File filePath = new File("C:\\Users\\agelormini\\Desktop\\big.jpg");
com.sun.image.codec.jpeg.JPEGImageDecoder jpegDecoder = null;
try {
jpegDecoder = JPEGCodec.createJPEGDecoder (new FileInputStream(filePath));
} catch (FileNotFoundException e2) {
e2.printStackTrace();
}
try {
image = jpegDecoder.decodeAsBufferedImage();
} catch (ImageFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.RED);
g2d.drawLine(131, 220, 216, 222);
g2d.drawRect(164, 157, 268 - 164, 287 - 157);
g2d.drawLine(165, 229, 174, 135);
File dest = new File("C:\\Users\\agelormini\\Desktop\\big_mod.jpg");
try {
ImageIO.write(image, "jpg", dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
입니다. 어떠한 제안?
image = convert(image, BufferedImage.TYPE_INT_BGR);
:
감사
프로그램이 제대로 작동합니다. 빨간 직사각형과 빨간 선이 두 개 있습니다. – TDG
우연히 원본 JPG는 흑백 이미지입니까? –
@OHGODSPIDERS 예 열전 사 카메라의 이미지입니다. 음 ... 나는 이것에 대해 생각하지 않았습니다 :(이미지는 어떤 방식 으로든 색상을 표현할 수 없습니까?) – SUPERALEX