SkPaint pa;
pa.setColor(0xff123456);
SkRect r;
r.set(0,0,100,100);
srccanvas.drawRect(r,pa);
unsigned char* add = (unsigned char*)sf->data;
LOGD("0x%x, 0x%x, 0x%x, 0x%x",add[0],add[1],add[2],add[3]);
打印显示:0x12, 0x34, 0x56, 0xff
r g b a
打印出来的像素排列方式为 rgba格式。请问,在drawRect中有对像素格式进行转化吗?
如果是按0xff123456这个格式排列的话,打印出来的应该是:0x56, 0x34, 0x12, 0xff
貌似r,b交换位置了。在什么地方有颜色格式的转化吗?
pa.setColor(0xff123456);
SkRect r;
r.set(0,0,100,100);
srccanvas.drawRect(r,pa);
unsigned char* add = (unsigned char*)sf->data;
LOGD("0x%x, 0x%x, 0x%x, 0x%x",add[0],add[1],add[2],add[3]);
打印显示:0x12, 0x34, 0x56, 0xff
r g b a
打印出来的像素排列方式为 rgba格式。请问,在drawRect中有对像素格式进行转化吗?
如果是按0xff123456这个格式排列的话,打印出来的应该是:0x56, 0x34, 0x12, 0xff
貌似r,b交换位置了。在什么地方有颜色格式的转化吗?
如果是,那么你应该会做4个字节的倒序排列吧? 没什么困难啊
即A<<24 | R<<16 | G<<8 | B的方式组成的。
你是不是可以自己转换呢?
比如有个颜色值是Color= 0x FF DD 99 88
A= Color>>>24
R=Color>>16&0xFF
G=Color>>8&0xff
B=Color&0xff