用C++编辑位图

Editing bitmaps in C++

本文关键字:位图 编辑 C++      更新时间:2023-10-16

我想知道是否有关于用c++加载、创建和编辑位图的好教程或书。我需要逐像素编辑位图,但没有一个教程没有说明如何编辑。我想了解位图是如何"工作"的,维基百科对我有所帮助。

如果你想在像素级别上操作位图,那么你应该开始学习图像处理,然后阅读一些关于位图文件格式的知识。这不是一个C++问题。C++在这样的任务中只是锦上添花。

在这里你可以找到一些关于图像处理的讲座:http://www.archive.org/details/Lectures_on_Image_Processing

以下是BMP文件格式的说明:http://www.fileformat.info/format/bmp/spec/e27073c25463436f8a64fa789c886d9c/view.htm

您也可以很容易地找到许多其他格式的源代码。祝你好运,我已经在大学学习这个话题三年了。。。我认为你真的应该像大卫·格雷森建议的那样使用一些开源库。

如果要编辑位图,只需要了解要编辑的格式即可。每个组件有多少位,每个像素有多少个组件,定义的宽度和高度在哪里,所述格式文件的标准是什么。如果你想使用流行的BMP,你可以在维基百科上找到所有这些。

如果所有这些对你来说都没有什么意义,那么你应该先尝试一下数字图像处理教程。

图像只是一个结构(像素)阵列,每个结构都有一定数量的组件,你只需要读写所述阵列就可以进行任何编辑。但请注意,尽管常见的裁剪和像素替换几乎是微不足道的,但高级版和更改并不是。

我假设你已经搜索了谷歌,但没有找到任何好的东西。

如果我是你,我会先了解位图的二进制格式。您可以通过阅读规范和/或使用WinHex或ghex2等十六进制编辑器查看位图文件来了解它。

然后我将学习如何在C++中读取文件和处理二进制数据。

但实际上,如果你只使用Magick++库,你可能会节省很多精力:

http://www.imagemagick.org/Magick++/