0
私は入力としてjpegイメージを取る単純なJavaプログラムを持っています。そしてそれを保存している線と矩形を描きます。私は線と矩形を赤色にしたいが、結果イメージでは常に黒、白または灰色である。それはどの色をラインに設定するかによって異なります。jpeg画像にJavaが間違った色の線を描くのはなぜですか?
これは、行が黄色で、黒になります。この場合、単純なコード
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();
}
}
}
であるが、これはなぜ起こるか私は理解していない...白になります。なにか提案を?
おかげ
あなたのプログラムはうまく動作します - 赤い矩形と2つの赤い線があります。 – TDG
万が一、ソースJPGが白黒画像ですか? –
@ OHGODSPIDERS yesは熱カメラの画像です... mmm私はこれについて考えることはありませんでした:(イメージはどのようにも色を表現できません) – SUPERALEX