函数的功能:将一32*32的bmp文件的每一个象素的值按rgb分离然后存放在一BYTE[384]的数组中,我不能解决的是c#的CBitmap类的GetPixel在vc中怎么实现,下面是c#的代码:
public byte[] GetImgData(System.Drawing.Bitmap bitmap)
{
byte[] ret = new byte[384];
Color color;
byte [] bTempR = new byte[128];
byte [] bTempG = new byte[128];
byte [] bTempB = new byte[128];
for (int i = 0; i < 128; i++)
{
bTempR[i] = 0;
bTempG[i] = 0;
bTempB[i] = 0;
}
try
{
for (int x = 0; x < 32; x++)
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 8; j++)
{
int y = i*8 + j;
color = bitmap.GetPixel(y, x);
if (color.R > 128)
bTempR[x*4+i] += (byte)Math.Pow(2, 7-j);
if (color.G > 128)
bTempG[x*4+i] += (byte)Math.Pow(2, 7-j);
if (color.B > 128)
bTempB[x*4+i] += (byte)Math.Pow(2, 7-j);
}
}
Array.Copy(bTempR, 0, ret, 0, 128);
Array.Copy(bTempG, 0, ret, 128, 128);
Array.Copy(bTempB, 0, ret, 256, 128);
}
return ret;
}
catch
{
return null;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货