我目前正在读取位图的像素数据,使用BitmapData
锁定位图后的可用。我使用的方法分别读取每个颜色字节,并且比int
直接在给定指针处读取 4 字节要慢。但不幸的是,我的位图是 24bpp,这意味着每个像素有 3 个字节,而不是 4 个。那么有没有办法快速读取 3 个字节并将其转换为int
给定的指针地址?
// read pixel color
byte* Pix = (byte*)bmpScan0 + (y * bmpStride) + (x * 3);
byte R = *(Pix + 2);
byte G = *(Pix + 1);
byte B = *(Pix);
int RGB = ((int)R << 16) | ((int)G << 8) | (int)B;