[英]CImg with jpeglib
我正在尝试使CImg与Visual Sudio 2017和jpeg-9b一起使用,但由于某种原因,它无法使用。
码:
#define cimg_use_jpeg
#include "../CImg/CImg.h"
using namespace cimg_library;
#pragma comment(lib, "libjpeg.a")
CImg<unsigned char> image("../images/img.jpg"), visu(500, 400, 1, 3, 0);
第一步是构建库,在此之后,我描述了如何使用MinGW编译器。 即使构建成功,在Visual Studio解决方案中也无法链接生成的库libjpeg.a
。 错误信息:
状态错误LNK2019未解析的外部符号__imp___iob在函数_output_message中引用
加载.jpg文件CImg异常时,另一个生成的库libjpeg.dll.a引发错误(图片)
经过几次重建后,问题仍然存在。 我还尝试使用VC编译器,但是找不到调用build comand nmake -f makefile.vc setup-v10
时所需的必需win32.mak文件。 该文件的非官方下载无法在我的电脑上正常工作。 无法在Visual Studio中打开生成的解决方案。
是否有一些解决方法-如果没有解决方案?
如果要使用CImg读取/写入JPEG图像,则有几种选择:
您可以安装libjpeg
,我已经在这里进行了详细介绍。 如果遵循此选项,则必须使用:
#define cimg_use_jpeg
CImg将针对libjpeg
编译和链接,并读取和写入JPEG图像。 您将需要编译并安装libjpeg
才能使用此选项。
您可以安装ImageMagick , CImg可以委托对其进行读写。 如果选择此路线,请在安装ImageMagick的过程中确保选中标题为“ Install Legacy Commands”或类似名称的框。 使用此选项,您可以读取和写入JPEG以外的大约200种其他图像格式。 这对于生成测试图像和尝试算法而无需编写任何C ++也非常有用。 主要缺点是它的分布范围很大。
如果要使用此选项,则不得#define cimg_use_jpeg
或#define cimg_use_magick
。 CImg将在运行时 magick.exe
ImageMagick的convert.exe
或magick.exe
,而ImageMagick将不会为您的Visual Studio项目所知,也不会参与其中。 您可以致电:
imagemagick_path()
在运行时告诉CImg您在哪里安装了ImageMagick的convert.exe
或magick.exe
。 如果使用此选项,则在保存图像时应使用通用的save()
方法,而不是save_jpeg()
或save_png()
。
到目前为止,这是最简单的选择。
如果要使用此选项,则必须执行以下操作:
#define cimg_use_magick
然后CImg将编译并与Magick ++链接,这是ImageMagick的C ++接口。 这将需要您安装Magick ++的源代码,这可能是最难实现的选择。
根据您的目标,可以想到可以安装更简单,更轻便的NetPBM工具,并将图像转换为PBM/PGM/PPM
格式,因为CImg可以原生读取和写入图像而无需任何外部库。
可以想象,可以在加载图像时使用C ++的system()
动态地执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.