BGRA与BGR的相互转换

 1 BGRA转BGR
 2 void BgraToBgr(BYTE *bgraData,int *bgraSize)
 3 {
 4     for(int i=0,j=0; j<*bgraSize; i+=3,j+=4)
 5     {
 6         *(bgraData+i) = *(bgraData+j);
 7         *(bgraData+i+1) = *(bgraData+j+1);
 8         *(bgraData+i+2) = *(bgraData+j+2);
 9     }
10     *bgraSize = *bgraSize/4*3;
11 }
12  
13 BGR转BGRA
14 void BgrToBgra(BYTE **bgrData,int *bgrSize)
15 {
16     int bgraSize = *bgrSize/3*4;
17     BYTE *bgraData = new BYTE[bgraSize];
18     for(int i=0, j=0; j < bgraSize; i+=3, j+=4)
19     {
20         *(bgraData+j) = *(*bgrData+i);
21         *(bgraData+j+1) = *(*bgrData+i+1);
22         *(bgraData+j+2) = *(*bgrData+i+2);
23         *(bgraData+j+3) = 0;
24     }
25     free(*bgrData);
26     *bgrData = bgraData;
27     *bgrSize = bgraSize;
28 }

 

posted @ 2018-05-30 20:02  jiu~  阅读(3168)  评论(0编辑  收藏  举报