私はこの画像を持っています:
この画像のRGB値をで抽出したいと思いますint[]
。これは私がPNG画像に対してこれまでに行ったことです:
File f = new File("t.jpg");
BufferedImage img = ImageIO.read(f);
int[] ib = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
Color c = new Color(ib[0]);
System.out.println(c.getRed() + " " + c.getGreen() + " " + c.getBlue());
しかし、ここでこの出力が得られます。255 128 128
これは、(0,0)のピクセルがこれらの値を持っていることを明確に確認している(そしていくつかの画像エディターで確認している)ため、予期されていません255 255 255
。
によって返される型がTYPE_3BYTE_BGRimg.getType()
と等しいことに気付いたので、これはバックグラウンドで発生しているデコードの問題だと思いますが、回避方法を理解できません(または何が起こっているのかをより明確に理解できません)。
このタイプを適切にデコードする方法について誰かが提案を持っていますか?