mac_osx_rgb888RGB565
来源:互联网 发布:红米3s刷机后没4g网络 编辑:程序博客网 时间:2024/05/01 01:34
mac osx:(888_2_565)
unsigned char *srcData = [srcBitImageRep bitmapData]; //rgb888
unsigned char *destData = (unsigned char *)malloc(pixelsWide * pixelsHigh * 2);
unsigned short *pDestData;
pDestData = (unsigned short*)destData;
unsigned long nPos16 = 0, nPos24, nSize;
nSize = pixelsWide * pixelsHigh * 3;
for (nPos24 = 0 ; nPos24 < nSize ; nPos24+=3 ,nPos16+=2)
{
*pDestData = 0;
unsigned short tmp;
tmp = srcData[nPos24] & 0x00F8;//1111 1000R
tmp <<=8;
*pDestData |= tmp;
tmp = srcData[nPos24+1] & 0x00FC;//1111 1100G
tmp <<=3;
*pDestData |= tmp;
tmp = srcData[nPos24+2] & 0x00F8; //1111 1000B
tmp >>=3;
*pDestData |= tmp;
pDestData ++;
}
_________________
565-2-888
dest = [bitmap bitmapData];
int i, end = width*height, rgb24i = 0;
unsigned char *pBuffer = (unsigned char *)malloc(strlens);
[pRgb565_data getBytes:pBuffer length:strlens];
unsigned short * src = (unsigned short *)pBuffer;
for (i=0; i<end; i++, rgb24i += 3)
{
unsigned short *pixel = src;
dest[rgb24i] = (*pixel >> 8) & 0x00F8;
dest[rgb24i+1] = (*pixel >> 3) & 0x00FC;//G
dest[rgb24i+2] = (*pixel << 3) & 0x00F8 ; //B
src++;
}