我想知道是否有任何关于在c ++中加载,创建和编辑位图的好教程或书籍。我需要逐个像素地编辑位图,但没有一个教程没有显示如何。我想了解位图“工作”和维基百科是如何帮助的。
答案 0 :(得分:3)
如果您想在像素级别操作位图,那么您应该开始学习图像处理,然后阅读有关位图文件格式的内容。这不是一个C ++问题。在这样的任务中,C ++只是锦上添花。
在这里您可以找到一些有关图像处理的讲座: http://www.archive.org/details/Lectures_on_Image_Processing
以下是BMP文件格式的说明: http://www.fileformat.info/format/bmp/spec/e27073c25463436f8a64fa789c886d9c/view.htm
您也可以轻松找到其他格式的大量来源。祝你好运,我在大学学习这个课题已经三年了......我认为你真的应该使用一些开源图书馆作为David Grayson的建议。
答案 1 :(得分:2)
如果要编辑位图,只需了解要编辑的格式即可。每个组件有多少位,每个像素有多少个组件,定义的宽度和高度在哪里,所述格式文件的标准是什么。如果您想使用流行的BMP,可以在Wikipedia中找到所有这些内容。
如果这一切对您来说没什么意义,那么您应该首先尝试一下数字图像处理教程。
图像只是一个结构(像素)的数组,每个都有一定数量的组件,你只需要读取和写入所述数组就可以完成你想要的任何版本。但需要注意的是,虽然常见的作物和像素替换几乎是微不足道的,但高级版和改版都不是。
答案 2 :(得分:1)
我假设您已经搜索过Google并且没有找到任何好处。
如果我是你,我会首先了解位图的二进制格式。您可以通过读取规范和/或使用十六进制编辑器(如WinHex或ghex2)查看位图文件来了解它。
然后我将学习如何读取文件并使用C ++中的二进制数据。
但是如果你刚刚使用Magick ++库,那么你真的可以节省很多精力: