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 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 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