私はRGB値から画像を作成しようとしています、これは私のコードです:
try {
BufferedImage img = new BufferedImage(5, 5, BufferedImage.TYPE_INT_RGB);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
Color clc = new Color(40, 21, 60);
int rgb = clc.getRGB();
img.setRGB(i, j, rgb);
}
}
// retrieve image
File outputfile = new File("D:\\saved.jpg");
ImageIO.write(img, "jpg", outputfile);
} catch (IOException e) {
}
カラー画像の赤= 40、緑= 21、青= 60を作成します。画像が作成された後、ピクセルを再度取得しようとします。しかし、作成時にRGB値と異なる出力ピクセル。これは、RGB値を取得するための私のコードです:
public static void main(String[] args){
try {
BufferedImage bf = ImageIO.read(new File("D:\\saved.jpg"));
RGB(bf);
} catch (IOException ex) {
Logger.getLogger(ektract.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void RGB(BufferedImage end)
{
System.out.println("GREEN");
System.out.println("====");
for (int y = 0; y < end.getHeight(); y++)
{
for (int x = 0; x < end.getWidth(); x++)
{
int rgb = end.getRGB(x, y);
int red = (rgb >> 16) & 0x000000FF;
int green = (rgb >>8 ) & 0x000000FF;
int blue = (rgb) & 0x000000FF;
System.out.print(red+" "+green+" "+blue+" ");
}
System.out.println();
}
}
そしてこの出力:
緑 ==== 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59 39 21 59
助けてくれますか。ありがとう