gpt4 book ai didi

c++ - 带有 jpeglib 的 CImg

转载 作者:行者123 更新时间:2023-11-28 01:40:24 26 4
gpt4 key购买 nike

我试图让 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 编译器的说明。即使构建成功,生成的库libjpeg.a 在 Visual Studio 解决方案中不可链接。错误信息:

State Error LNK2019 unresolved external symbol __imp___iob referenced in function _output_message

另一个生成的库 libjpeg.dll.a 在加载 .jpg 文件时抛出错误 CImg Exception (picture)

经过几次重建后,问题仍然存在。我也尝试使用 VC 编译器,但找不到调用构建时所需的 win32.mak 文件 comand nmake -f makefile.vc setup-v10 .此文件的非官方下载无法在我的电脑上正常运行。生成的解决方案无法在 Visual Studio 中打开。

是否有一些解决方法 - 如果没有解决方案?

最佳答案

如果您想使用CImg 读/写 JPEG 图像,您有多种选择:

选项 1

您可以安装我已经详细介绍过的libjpeg here .如果您遵循此选项,则必须使用:

#define cimg_use_jpeg

CImg 将针对libjpeg 进行编译和链接,并读取和写入JPEG 图像。您需要编译并安装 libjpeg 才能使用此选项。

选项 2

您可以安装ImageMagick 并且CImg 可以将读取和写入委托(delegate)给它。如果您选择此路径,请务必在安装 ImageMagick 期间勾选标题为 “安装旧命令” 或类似内容的框。此选项使您能够读取和写入除 JPEG 之外的大约 200 种其他图像格式。它对于生成测试图像和试用算法也非常有用,而无需编写任何 C++ 代码。主要缺点是它的分布相当大。

如果你想使用这个选项,你不能#define cimg_use_jpeg或者#define cimg_use_magickCImg 将在运行时寻找 convert.exemagick.exe ImageMagick ImageMagick 不会为您所知,也不会参与您的 Visual Studio 项目。您可以调用:

imagemagick_path()

在运行时告诉 CImg 您安装了 ImageMagickconvert.exemagick.exe .如果使用此选项,则在保存图像时应使用通用的 save() 方法,而不是 save_jpeg()save_png()

到目前为止,这是最简单的选择。

选项 3

如果你想使用这个选项,你必须:

#define cimg_use_magick

然后 CImg 将编译并链接到 Magick++ - ImageMagick 的 C++ 接口(interface)。这将要求您安装 Magick++ 的源代码,这可能是最难实现的选项。


根据您的目标,您可以想象安装更简单、重量更轻的 NetPBM 工具并将图像转换为 PBM/PGM/PPM 格式,因为 CImg 无需任何外部库即可原生读写。

可以想象,您可以在加载图像时使用 C++ 的 system() 动态执行此操作。

关于c++ - 带有 jpeglib 的 CImg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com