我正在构建一个程序,将图像文件(任何文件类型最简单)转换为G-Code,以便在带有笔式绘图仪附件的rep-rap上使用。
我在想,如果我想逐个像素地处理图像并检查像素颜色之类的东西,我如何使用C++来做到这一点?
我真的很想知道如何逐个像素地处理位图图像来检查像素的颜色。
发布于 2011-10-07 02:40:20
最好的方法是使用库,例如Magick++。
加载图像时,可以使用Blob访问其像素数据
发布于 2011-10-07 02:59:07
您可能希望使用已测试的现有库。
但是为了好玩/练习/等等,这将是一个很好的练习,而且不是不可能做到的。与其他图像格式相比,Bitmap Format (相对)简单。维基百科的页面上有很多信息,包括一些C++代码。看起来,一旦你通过了头信息,你就会得到一个像素数组,它应该不难解析。
祝好运。
发布于 2011-10-07 03:00:28
大多数图像格式由标题和实际的原始图像数据组成。bimpap图像也不例外。如果您不想使用现有的库之一,或者如果您不被允许使用,您应该阅读有关位图格式的内容:
http://en.wikipedia.org/wiki/BMP_file_format
一旦你理解了这一点,你就可以创建合适的结构/类来存储你想要从头文件中获得的信息,比如x,y大小,bpp等等,还可以有一个指向原始图像数据的指针。然后,您可以简单地迭代每个像素,并对其做任何您想做的事情:)
https://stackoverflow.com/questions/7678874
复制相似问题