C++图像编码/解码库
C++ image encode / decode library
我正在开发一个用于图像处理的科学应用程序。它使用自己的简单数据类型来存储图像(像素数据、通道数等)。我需要的是能够读取常见格式(bmp,jpeg,png,也许是其他格式)的图像,转换为我的内部格式,然后在处理后将它们导出为一种常见格式。
我希望这个应用程序尽可能轻量级,所以我不想包含"繁重"的库,例如OpenCV或ImageMagick,只是为了这个目的。
是否有任何简单、轻巧和高效的 c++ 库仅用于编码和解码流行格式的图像?或者我唯一的选择是为每个格式使用单独的库,例如 libjpeg 和 libpng?
为了打开常见格式,有两种方法:分离的库或有时是操作系统(例如,您可以使用Windows API打开JPEG)。
使用ImageMagick/OpenCV没有问题...它们很轻!即使您考虑使用单独的库更轻,您也必须实现一种通用的位图格式,以便从每个库的输出中获取数据(相信我,这里有技巧:通道数、通道顺序、像素顺序 [从左上到右下]等)......嗯,很多工作!
那么,为什么不使用已经实现的东西,比如ImageMagick/OpenCV?所有这些工作都已经完成!我真的相信这是一个非常好的选择!
使用 FreeImage。
FreeImage 是一个开源库项目,面向希望支持流行的图形图像格式(如 PNG、BMP、JPEG、TIFF 等)的开发人员,以满足当今多媒体应用程序的需要。FreeImage 易于使用、快速、多线程安全、兼容所有 32 位或 64 位版本的 Windows,并且跨平台(适用于 Linux 和 Mac OS X)。
下载:http://freeimage.sourceforge.net/
- 使用已使用 java 编码的 openssl 解码数据
- 如何使用 OpenCV 解码在两个 UWP 应用之间发送的图像字节?
- 在CRC-16 CCITT中将数据从二进制解码为文本,我应该输入一个码字,使用CRC生成器进行编码
- Base64 图像编码不正确
- 当通过tcp接收编码图像的消息时,zmq在第二个循环中崩溃
- 如何使用 ffmpeg 将 3840 nb_samples编码为请求 1024 的编解码器
- 当我调用它来解码 Blob 对象中的 png 图像时,"Magick++::readImages"引发警告
- Opus编码和解码没有错误,但值不同
- YAML-CPP 编码/解码指针?
- 如何将 MATLAB 图像处理库内置函数转换为 MATLAB 编码器代码生成不支持的 C++?
- 解码 c++ 中以 base64 编码的大量数据
- 如何将硬编码图像加载到 OpenGL 纹理中
- 将原始视频图像转换为VPX编码器的I420
- 如何使用位操作在单个整数中编码和解码两个数字
- 将 JPG 编码数组从 ROS sensor_msgs/压缩图像保存到 roscpp 中的文件
- 用Qt解码用Java ImageIO类编码的图像
- 如何使用 Libwebp 从 Webp 解码和编码
- C++图像编码/解码库
- WebM编码器示例-如何将一系列图像编码为WebM视频
- 编译eAccelerator解码PHP编码文件