CImg 与 jpeglib

2023-12-02

我试图让 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(使用前将#替换为@)

CImg 与 jpeglib 的相关文章

随机推荐

  • wmi c# - WMI 给出不正确的电压读数

    所以我用 WPF C 和 WMI 编写了一个程序作为一个小项目来收集计算机的规格 并将其放在 SourceForge 上 因为它对我来说没什么用处 我很快发现 SoftPedia 已经发现了它 并在他们的屏幕截图中注意到电压读数有错误 这是
  • javascript 块中的 HTML 注释?

    我有一个像下面这样的函数 它在 HTML 页面中插入一段 HTML 代码 function someEventHandler htmlContent document getElementById some element id inner
  • C# 将魔术字符串转换为 lambda 表达式

    我有一组扩展方法 允许在 LINQ 中使用魔术字符串OrderBy 方法 我知道第一个问题是为什么 但它是通用存储库的一部分 并且具有灵活性 以便可以从 UI 发送字符串并直接使用 如果您传入一个代表您正在查询的主要实体上的属性的魔术字符串
  • 如何创建背景网格

    我想创建一个网格作为我的 JavaFX 应用程序的背景 我当前的解决方案是在画布上绘制一个矩形 从中创建一个图像图案并将其设置为填充 Question 有没有更好的方法来解决这个问题 最好是通过CSS 当前版本 public class B
  • 垂直翻转字节数组中位图的算法

    我正在编写一个类 用于通过 Mono For Android 将位图打印到 Android 中的便携式蓝牙打印机 我的类用于从流中获取像素数据 以便可以以正确的格式将其发送到打印机 现在这个类很简单 它只是读取高度 宽度和每像素位数 它使用
  • 无需条件语句即可访问第 n 位

    所以我有一个位序列 1010 1 是最高有效位 如果奇数位为 0 我的函数需要返回整数 0 如果奇数位为 1 则需要返回 1 我不能使用任何 for 循环或任何类似性质的东西来查看是否需要返回 0 或 1 有没有人有任何建议如何解决这个问题
  • Vagrant:在配置阶段创建此所有者时如何将所有者设置为同步/共享文件夹

    Vagrantfile 相关部分 config vm provision chef solo do chef chef add recipe yum various recipes in one of these i create the
  • 检测“暂停”的 Windows 8/10 进程

    Windows 8 10 中的 UWP 或 Metro 应用程序不在前台时可以暂停 处于此状态的应用程序继续存在 但不再消耗 CPU 时间 看来引入此更改是为了提高平板电脑和手机等低功耗 存储设备的性能 检测处于这种状态的进程的最优雅 最简
  • 如何检查SQLite文件一致性(健康检查)

    我在 Android 应用程序中使用 SQLite 数据库文件 该文件是使用以下方法从存储在资产文件夹中的多个部分创建的 ReignDesign 在 Android 应用程序中使用您自己的 SQLite 数据库 组装过程完成后 我想检查数据
  • 无法启动 Hyper-V 容器

    在此输入图像描述我正在尝试运行 docker 容器 但收到以下错误消息 因为未启用 Hyper V 和虚拟化 但我已经启用了 Hyper V 和虚拟化 我已经通过 Bios 以及 power shell 命令进行了 Hyper V 设置 尽
  • 无法从 Jenkins CI 启动浏览器

    当从 Jenkins 构建后通过调用 rake 任务触发黄瓜测试时 我无法在 CI 服务器上启动浏览器 在我的例子中是 Linux 上的本地主机 Jenkins 控制台日志如下 我非常确定一切都设置正确 因为我可以通过命令行在服务器上成功运
  • OpenCV 2.3 编译问题 - 未定义的参考 - Ubuntu 11.10

    系统信息 Ubuntu 11 10 64 位 和 OpenCV 2 3 今天安装 我正在尝试在 OpenCV 2 3 中编译一些非常简单的代码 但出现了一个奇怪的错误 include
  • 来自 python 的 Windows 特殊文件夹和已知文件夹(开始菜单、下载等)[重复]

    这个问题在这里已经有答案了 确定Windows路径的最佳方法是什么特殊文件夹 and 已知文件夹在Python中 我发现了几种流行的 SpecialFolders 方法 也称为CSIDL 但还没有什么简单的事情已知文件夹ID 保持了向后兼容
  • 使用 * 访问方法中的值

    在方法定义中 当 按以下方式使用 这是什么意思 def foo end 我理解以下用法 def foo args end 我不确定在前一种情况下如何访问方法参数 它的意思是 接受和丢弃任意数量的参数 两个定义在技术上是相同的 但不给参数数组
  • 使用 Apple Healthkit 测量心率

    我目前正在应用程序中使用 Healthkit 获取大多数类型的信息都没有问题 但在心率方面遇到问题 每次我尝试读取样本时 结果都是 0 我有一块 Apple Watch 我的心率被输入到 Apple Health 应用程序中 并且可以在那里
  • JSF:Mojarra 2.1 到 2.2 迁移导致 ViewExpiredException

    我正在将应用程序从 PrimeFaces 3 5 18 Mojarra 2 1 26 移植到 PrimeFaces 4 0 2 Mojarra 2 2 4 当我重新启动服务器时 我收到 ViewExpiredException 服务器日志包
  • HRESULT 异常:0x800AC472

    当我将 Excel 应用程序的 displayalert 属性设置为 true 时 会触发此异常 为什么 属性浏览器是否已暂停 如果是这样 这可能会有所帮助 来自 Excel 中集合运算的 HRESULT 800ac472 一个建议是将您的
  • 批处理文件 - 下载最新的 FTP 文件夹

    我正在尝试从 FTP 服务器下载最新的文件夹 该文件夹包含多个文件夹 其中包含多个 CSV 文件 我遇到的问题是每天都会创建文件夹 每次运行脚本时我只希望它下载该位置的最新文件夹 我不知道如何指定这一点 甚至不知道如何使用批处理文件从 FT
  • 添加更复杂的子类公理

    我偶然发现了另一个问题 I want to achieve something similar to this 我想使用 RDFList 来执行此操作 将必要的属性添加到列表中 然后调用方法 createUnionClass 或 creat
  • CImg 与 jpeglib

    我试图让 CImg 与 Visual Studio 2017 和 jpeg 9b 一起使用 但由于某种原因它不能使用 Code define cimg use jpeg include CImg CImg h using namespace