int colorに色要素A, R, G, Bが2バイト(0~255)で表現されているとする.
このとき
int a=(color >> 24) & 0xff
int r=(color >> 16) & 0xff
int g=(color >> 8) & 0xff
int b=color & 0xff
で各要素が得られる.
逆に,colorを変更する場合は
color=(color&0x00ffffff)|(a<<24);
color=(color&0xff00ffff)|(r<<16);
color=(color&0xffff00ff)|(g<<8);
color=(color&0xffffff00)|b;
とする.
この場合,メモリを節約出来るけど,256階調でしか色を表現出来ない.
0 件のコメント:
コメントを投稿