1

AndroidでビットマップのRGB値を取得する際に問題が発生しています...これが私がやっていることです:

int[] temp = new int[width*height];
bit.getPixels(temp, 0, width, 0, 0, width, height);

ただし、色は一般的な RGB 値と一致していないようです。たとえば、白いピクセルは -1 として表示されますが、RGB 値は 16777215 です。

通常の RGB 値に適合しないと思われる負の値もたくさんあります。私の質問は、 getPixels() メソッドが返す Android Color 整数ではなく、典型的な RGB 値に変換する方法があるかどうかです。ご不明な点がございましたら、お気軽にお問い合わせください。

4

3 に答える 3

1

値を符号なし整数で格納します。

于 2011-06-28T06:02:05.553 に答える
1

最初に試すことができるかもしれませんがgetPixel、その方が簡単だと思われます。

それ以外の場合は、質問にさらにコードを入力できますか (ビットマップをどのように宣言しますか、その -1 値を取得する場所...など...)

于 2011-06-28T04:30:27.927 に答える
1

ドキュメントによると、-1 は白で、実際には 16777215 は 16 進数で 0xffffff であり、これは -1 に相当します。

の数値はすべてColor負です。これは、16 進値の先頭に f があるためです。アルファ値または不透明度を指定する 16 進数値の先頭に ff があります。色が完全に不透明な場合、数字は ff で始まり、色が完全に透明な場合、数字は 00 で始まります。

于 2011-06-28T04:32:33.190 に答える