如何使用boost/标准库在C++中读取/写入图像

How can I read/write an image in C++ using just boost/standard library?

本文关键字:读取 C++ 图像 何使用 boost 标准      更新时间:2023-10-16

这可能吗?图像是什么格式并不重要,但我必须能够打开它,将像素数据读取到某种数组中,使用修改后的像素数据集创建新图像。

谢谢!

Boost.GIL有一个很好的视频教程,它向您展示了如何以一种非常通用但高效的方式读取/写入和处理原始图像数据。

您需要代码来编码和解码您想要支持的格式。你可以自己做(不是很理想/实用),你可以嵌入编码/解码库(例如libpng),也可以嵌入DevIL等图像库。

Boost似乎包含了某种名为Boost.GIL的图像访问库。不过我真的不太了解它。

我建议使用TARGA图像格式来满足您的需求。您只需在标头中读取/写入几个值,然后剩下的是RGBA像素数据的未压缩数组。你甚至不需要Boost!

我建议使用CImg。这个图书馆非常容易使用。你只需要在代码中包含一个头文件,并在编译时设置一些参数,就这样!我曾将CImg与MingW和GCC一起使用。