在C ++中将图像读入像素矩阵

时间:2011-11-14 23:43:47

标签: c++ windows image winapi image-processing

我已将图像读入带有LPPICTURE的{​​{1}}并将其显示在窗口中,但我真正需要做的是将图像转换为像素矩阵,我可以操作它保存回图像文件。

使用OleLoadPictre,我几乎可以读取所有主要图像格式。如果我可以访问单个像素,我可以循环遍历并全部提取它们。

在其他相关问题中,人们建议使用像OpenCV这样庞大的图书馆和其他高度发展的图书馆,这些图书馆可以在阳光下做任何事情,但我更愿意让我的解决方案尽可能轻松。我已经为我的像素编写了一个基本结构,我很乐意自己进行操作。

我一直在使用Magic ++查看ImageMagic库。这似乎相当不错,但如果有一个解决方案只是使用Windows API来提取像素并将图像保存回任意图像格式,那么这将是我认为最好/最轻的。

1 个答案:

答案 0 :(得分:0)

OleLoadPicture为您提供IPicture的实例。使用IPicture::get_Handle获取HBITMAP实例所持有的IPicture。最后,使用GetDIBits获取像素数据。

here的示例代码。将其从MFC转换为普通的WinAPI应该可以获得像素数据。