0

我正在开发一个用于图像处理的科学应用程序。它使用自己的简单数据类型来存储图像(像素数据、通道数等)。我需要的是能够读取常见格式(bmp、jpeg、png,也许还有其他)的图像,转换为我的内部格式,然后在处理回一种常见格式后将它们导出。

我希望这个应用程序尽可能轻量级,所以我不想仅仅为了这个目的而包含“重”库,例如 OpenCV 或 ImageMagick。

是否有任何简单、轻便、高效的 c++ 库仅用于对流行格式的图像进行编码和解码?或者我唯一的选择是为每种格式使用单独的库,例如 libjpeg 和 libpng?

4

2 回答 2

2

为了打开常用格式,有两种方法:分离的库,或者,有时,操作系统(例如,您可以使用 Windows API 打开 JPEG)。

使用 ImageMagick/OpenCV 没有问题……它们很轻!即使您认为使用分离的库较轻,您也必须实现一种通用的位图格式,以便从每个库的输出中获取数据(相信我,这里有一些技巧:通道数、通道顺序、像素顺序 [从左上角到右下角],等等)......好吧,很多工作!

那么,为什么不使用像 ImageMagick/OpenCV 这样已经实现的东西呢?所有这些工作都已经完成了!我真的相信这是一个非常好的选择!

于 2013-10-04T04:59:09.307 回答
0

使用自由图像。

FreeImage 是一个开源库项目,面向希望支持当今多媒体应用程序所需的流行图形图像格式(如 PNG、BMP、JPEG、TIFF 和其他格式)的开发人员。FreeImage 易于使用、快速、多线程安全、兼容所有 32 位或 64 位版本的 Windows,并且是跨平台的(适用于 Linux 和 Mac OS X)。

下载: http: //freeimage.sourceforge.net/

于 2013-10-10T06:59:13.193 回答