我试图让 CImg 与 Visual Studio 2017 和 jpeg-9b 一起使用,但由于某种原因它不能使用。
Code:
#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编译器。即使构建成功,生成的库libjpeg.a
在 Visual Studio 解决方案中不可链接。错误信息:
状态错误 LNK2019 无法解析函数 _output_message 中引用的外部符号 __imp___iob
另一个生成的库libjpeg.dll.a加载 .jpg 文件时抛出错误CImg异常(图)
经过几次重建后,问题仍然存在。
我也尝试过使用VC编译器,但找不到需要的win32.mak调用构建时需要的文件comand nmake -f makefile.vc setup-v10
。该文件的非官方下载在我的电脑上无法正常工作。生成的解决方案无法在 Visual Studio 中打开。
如果没有解决方案,是否有一些解决方法?
如果您想读取/写入 JPEG 图像,您有多种选择CImg:
Option 1
您可以安装libjpeg
我已经详细介绍过here。如果您遵循此选项,则必须使用:
#define cimg_use_jpeg
and CImg将编译并链接到libjpeg
并读取和写入 JPEG 图像。您需要编译并安装libjpeg
使用此选项。
Option 2
您可以安装图像魔术师 and CImg可以将读取和写入委托给它。如果您选择此路线,请务必勾选标题为““安装旧命令”或类似的,在安装过程中图像魔术师。此选项使您能够读取和写入除 JPEG 之外的大约 200 种其他图像格式。它对于生成测试图像和尝试算法也非常有用,无需编写任何 C++ 代码。主要缺点是它的分布相当大。
如果您想使用此选项,则不得#define cimg_use_jpeg
nor #define cimg_use_magick
. CImg将寻找convert.exe
or magick.exe
of 图像魔术师 在运行时 and 图像魔术师不会为您所知或参与其中视觉工作室项目。您可以致电:
imagemagick_path()
to tell CImg在您安装的运行时图像魔术师's convert.exe
or magick.exe
。如果您使用此选项,则应该使用通用save()
保存图像时的方法,而不是save_jpeg()
or save_png()
.
到目前为止,这是最简单的选择。
Option 3
如果您想使用此选项,您必须执行以下操作:
#define cimg_use_magick
进而CImg将编译并链接Magick++- C++ 接口图像魔术师。这将要求您安装源代码Magick++并且可能是最难实现的选择。
根据您的目标,您可以想象安装更简单、重量更轻、NetPBM工具并将您的图像转换为PBM/PGM/PPM
格式自CImg可以在没有任何外部库的情况下本机读取和写入这些内容。
可以想象,您可以使用 C++system()
在加载图像时动态执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)