2

お時間をいただきありがとうございます:)。私はすでにTYPE_INT_RGB と TYPE_INT_ARGB の Format を見て、この TYPE_INT_RGB を 4 つの個別の値に変換する方法を知っていますが、それぞれに変更を加える場合 (たとえば、それぞれに 20 を追加すると、Alpha+=20、red+=20 になります)など) これらの値をこの TYPE_INT_RGB 形式に再結合するにはどうすればよいですか? ありがとうございました!

4

3 に答える 3

5
// to extract the components into individual ints.
int argb = something();
int red = 0xFF & ( argb >> 16);
int alpha = 0xFF & (argb >> 24);
int blue = 0xFF & (argb >> 0 );
int green = 0xFF & (argb >> 8 );

// to recreate the argb
int argb = (alpha << 24) | (red << 16 ) | (green<<8) | blue;
于 2012-05-12T22:48:40.950 に答える
3

私はこれがうまくいくと信じています

int RGB = alpha;
RGB = (RGB << 8) + red;
RGB = (RGB << 8) + green;
Rgb = (RGB << 8) + blue;

ビットをシフトせずに別の方法がありますが、それを理解できると確信しています。

これも大丈夫です:

int rgba = new java.awt.Color(r,g,b,a).getRGB();
于 2012-05-12T22:20:53.457 に答える
3

私はこれに使用java.awt.Colorします。

int ARGB = new Color(red, green, blue, alpha).getRGB();

個々のカラー チャネルを引き出すためにビット単位の操作を使用していると思いますが、やはりColorクラスはそれらの悲惨な詳細を隠すことができます。

Color color = new Color(ARGB);
int red = color.getRed();
int green = color.getGreen();
// etc.
于 2012-05-12T22:47:57.800 に答える