- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 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 图像,您有多种选择:
您可以安装我已经详细介绍过的libjpeg
here .如果您遵循此选项,则必须使用:
#define cimg_use_jpeg
和CImg 将针对libjpeg
进行编译和链接,并读取和写入JPEG 图像。您需要编译并安装 libjpeg
才能使用此选项。
您可以安装ImageMagick 并且CImg 可以将读取和写入委托(delegate)给它。如果您选择此路径,请务必在安装 ImageMagick 期间勾选标题为 “安装旧命令” 或类似内容的框。此选项使您能够读取和写入除 JPEG 之外的大约 200 种其他图像格式。它对于生成测试图像和试用算法也非常有用,而无需编写任何 C++ 代码。主要缺点是它的分布相当大。
如果你想使用这个选项,你不能#define cimg_use_jpeg
或者#define cimg_use_magick
。 CImg 将在运行时寻找 convert.exe
或 magick.exe
ImageMagick 和 ImageMagick 不会为您所知,也不会参与您的 Visual Studio 项目。您可以调用:
imagemagick_path()
在运行时告诉 CImg 您安装了 ImageMagick 的 convert.exe
或 magick.exe
.如果使用此选项,则在保存图像时应使用通用的 save()
方法,而不是 save_jpeg()
或 save_png()
。
到目前为止,这是最简单的选择。
如果你想使用这个选项,你必须:
#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/
我正在使用 CIMG 加载图像,如下所示: CImg image("lena.png"); 我怎么知道例如该图像的四个 channel 代表 RGBA 颜色而不是 CMYK?我知道CImg<>::sp
我正在尝试获取 CImg 的子图像。据我了解,方法 get_crop() 可以满足我的需要,但我获得的子图像不包含我期望它们具有的像素值。 unsigned char* StringTextureGe
我正在使用 Cimg 图形库编写小型 C 程序,需要测试文件是否为图像。 我试图加载文件/图像 CImg srcimg(filename) 并获得豁免,但 cimg 断然退出: convert.im6
*****码***** #include "CImg.h" #include using namespace cimg_library; int main() { CImg image("l
我是第一次使用 CImg 库,我用一个只包含 CImg.h 的简单测试程序遇到了编译错误。这是为什么?我该如何解决这个问题? 程序代码: #include "../headers/CImg.h" us
下面,我有一个使用 CImg 库 (http://cimg.sourceforge.net/) 的简单程序,它遍历图像的像素并根据每个像素的灰度值输出 0 或 1 (浅色或深色)。非常奇怪的是,每次运
我想在我的应用程序中集成用于图像处理的 CImg 库。当我尝试编译示例应用程序时,出现编译时错误。错误消息是这样的。Unresolved inclusion:X11/Xlib.h 当我将 CImg.h
我试图找到 Cimg 库,以便我可以将它添加到我在 Dev-c++ 中的库中,但是 Cimg 中没有名为 lib 的文件夹,所以它叫什么?谢谢。 最佳答案 Follow the CImg tutori
我正在使用 CImgDisplay 在屏幕上显示几张图片。我的问题是它们在命令提示符窗口和彼此之上打开。有没有办法让它们在不同的位置打开?我查看了 CImg 文档,但找不到任何内容。 最佳答案 CIm
我在使用 X11 xGetImage 拍摄快照后创建了一个二进制文件,并将数据字段的内容存储在 binary file 中(文件已压缩,请解压)。现在,我正在尝试使用 CImg 并学习它的用法。 第一
当我使用CImg 加载.BMP 时,如何知道它是灰度图像还是彩色图像?我试过如下,但失败了: cimg_library::CImg img("lena_gray.bmp"); const int sp
我想使用 CImg 库 ( http://cimg.sourceforge.net/ ) 以任意角度旋转图像(图像由不应执行旋转的 Qt 读取): QImage img("sample_with_al
我正在尝试实现光谱方法来计算图像的显着性图,但我似乎无法使逆 FFT 工作。 int main(int argc, char * argv[]) { const char * input_fi
我期待使用 CImg 库绘制一些简单的数学函数(如 y = x^3)。 我尝试使用它,但它总是给我以下错误: 对“SetDIBitsToDevice@48”的 undefined reference
我刚刚安装了 cImg,并开始浏览一些示例文件来让自己适应方向。每个从示例文件夹加载图像的程序都可以正常编译,然后在运行时在命令行窗口中遇到此错误: [instance(0,0,0,0,0000000
我已阅读 CImg documentation 的这一部分: 但是,尚不清楚如何设置此归一化级别(它不是 display() 函数参数)。 谁能告诉我如何使用它们?谢谢! 最佳答案 两种方法: 干净的
我正在尝试从我使用 libnoise 改编的世界生成器生成 map 图 block 。使用 libnoise 保存方法效果很好,但是当尝试使用 CImg 缩放和裁剪图像时,出现以下错误: [CImg]
标题是不言自明的,但我要强调我是 c++ 的初学者,尤其是涉及 CImg 库时。这是我到目前为止的代码,我尝试使用 flipped_idx 进行试验(当合并到代码中时它不起作用)但我认为我没有朝着正确
每当我尝试加载图像时,我都会收到一条错误消息:CImg::load(): Failed to recognize format of file . jpg 和 png 文件都会发生这种情况。 我找到了
我在一个项目中使用 CImg 处理一些不同的事情,并且有一个灰度图像,我需要应用 jet_LUT256 颜色映射。我不确定我是否走在正确的道路上。任何指导将不胜感激。 #include "CImg.h
我是一名优秀的程序员,十分优秀!