-
-
[分享]今日学习的RGB10转32位RGB
-
发表于: 2015-1-6 20:24 3878
-
BYTE pbyRtab[256][256]={0};
BYTE pbyGtab[256][256]={0};
BYTE pbyBtab[256][256]={0};
//已经默认右移2未降质
void InitialTab()
{
for( int i=0;i<256;i++ )
for( int j=0;j<256;j++ )
{
//i为高位 j为低位
pbyRtab[i][j] = (j & 0x3F)>>2) | ((i & 0x03)<<6) ; //低位高6位 高位低2位
pbyGtab[i][j] = (j & 0xF0)>>4) | ((i & 0x0F)<<4) ; //低位高4位 高位低4位
pbyBtab[i][j] = (j & 0xC0)>>6) | ((i & 0x3F)<<2) ; //低位高2位 高位低6位
}
}
void ConvertRGB10( DWORD * pDwSrc, BYTE * pbyDst, int nW, int nH )
{
//小端模式,pDwSrc存放数据
BYTE * pbySrc = (BYTE *)pDwSrc;
for( int i=0;i<nH;i++ )
for( int j=0;j<nW;j++ )
{
pbyDst[i*nW*3+j + 0] = pbyRtab[pbySrc[1]][pbySrc[0]];
pbyDst[i*nW*3+j + 1] = pbyRtab[pbySrc[2]][pbySrc[1]];
pbyDst[i*nW*3+j + 2] = pbyRtab[pbySrc[3]][pbySrc[2]];
}
}
BYTE pbyGtab[256][256]={0};
BYTE pbyBtab[256][256]={0};
//已经默认右移2未降质
void InitialTab()
{
for( int i=0;i<256;i++ )
for( int j=0;j<256;j++ )
{
//i为高位 j为低位
pbyRtab[i][j] = (j & 0x3F)>>2) | ((i & 0x03)<<6) ; //低位高6位 高位低2位
pbyGtab[i][j] = (j & 0xF0)>>4) | ((i & 0x0F)<<4) ; //低位高4位 高位低4位
pbyBtab[i][j] = (j & 0xC0)>>6) | ((i & 0x3F)<<2) ; //低位高2位 高位低6位
}
}
void ConvertRGB10( DWORD * pDwSrc, BYTE * pbyDst, int nW, int nH )
{
//小端模式,pDwSrc存放数据
BYTE * pbySrc = (BYTE *)pDwSrc;
for( int i=0;i<nH;i++ )
for( int j=0;j<nW;j++ )
{
pbyDst[i*nW*3+j + 0] = pbyRtab[pbySrc[1]][pbySrc[0]];
pbyDst[i*nW*3+j + 1] = pbyRtab[pbySrc[2]][pbySrc[1]];
pbyDst[i*nW*3+j + 2] = pbyRtab[pbySrc[3]][pbySrc[2]];
}
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [分享]今日学习的RGB10转32位RGB 3879
- [求助]关于输入表在PE文件物理存放位置的疑问 3737
- 关于IP数据包的最大长度问题 7081
- [转帖]对抗360!百度手机助手拟加入安全功能 2879
- [转帖]2013中国云存储用户将破2亿 2015
看原图
赞赏
雪币:
留言: