基本上,只有2个函数可行:
GetPixel(x,y)
GetBits()
GetPixel 就算了,要频繁访问堆栈,对于获取完整图形像素来说,太愚蠢
GetBits 是首选了,下面是代码
CxImage mm;
BYTE * pDib;
int BytesPerLine ;
if (!mm.Load(".\\qrpix_tst_l.jpg",FORMAT_JPG))
{
AfxMessageBox("文件打开失败");
return ;
}
mm.GrayScale();
if (!mm.IsGrayScale())
mm.GrayScale();
w = mm.GetWidth();
h= mm.GetHeight();
pDib = mm.GetBits();
BytesPerLine = (w + 3) / 4 * 4; // 只对8位图像
获取的像素,可以直接调用 cximage 的 CreateFromArray 恢复成图片,不过注意,第5个参数,扫描长度,一定要换算成4的倍数,不然会失败