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++;

}

 

原创粉丝点击