getRGB(x,y)
から取得した整数ピクセルがありますが、それをRGBA形式に変換する方法についての手がかりはありません。たとえば、_-16726016
_はColor(0,200,0,255)
である必要があります。任意のヒント?
私が正しく推測している場合、返されるのは0xAARRGGBB
という形式の符号なし整数なので、
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
色成分を抽出します。ただし、 docs をざっと見てみると、
Color c = new Color(argb);
または
Color c = new Color(argb, true);
colorのアルファコンポーネントも必要な場合。
[〜#〜]更新[〜#〜]
赤と青のコンポーネントは元の答えでは反転しているため、正しい答えは次のようになります。
int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;
コードの最初の部分でも更新されました
Color c = new Color(-16726016, true);
System.out.println(c.getRed());
System.out.println(c.getGreen());
System.out.println(c.getBlue());
System.out.println(c.getAlpha());
プリントアウト:
0
200
0
255
そういう意味ですか