gpt4 book ai didi

c++ - 无法使用 CImg 加载任何图像

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:17 27 4
gpt4 key购买 nike

每当我尝试加载图像时,我都会收到一条错误消息:CImg<unsigned char>::load(): Failed to recognize format of file . jpg 和 png 文件都会发生这种情况。

我找到了关于这句话定义 cimg_use_png 的其他帖子和 cimg_use_jpeg , 但后来我得到编译错误告诉我我需要 png.njpeglib.h .不确定我应该从哪里得到这些。

我不确定我哪里出错了,所以我不知道该具体问什么。出了什么问题?

最佳答案

如果你想打开JPEG图片,你需要安装libjpeg并编译链接。

如果你想打开PNG图片,你需要安装libpnglibz(用于压缩)并编译链接它们.

目前,您应该能够使用 NetPBM 格式图像 - 即 PBM、PGM 和 PPM。


好吧,经过两天痛苦的尝试弄清楚 Visual Studio 2017 的工作原理,以及如何安装 libjpeg 并将其集成,我现在可以解释一下如何在 Windows 上安装 CImg 和 libjpeg。

第一步

您需要安装 Visual Studio 2017,这意味着您需要 Windows 7 SP1 或更高版本。安装时,一定要包括“Windows 8.1 SDK”

enter image description here

第 2 步

IJG website 下载 libjpeg .我使用了 jpegsr9b.zip,因为它是最新的。

enter image description here

第 3 步

解压缩文件并将其存储在您的 HOME 目录中名为 libjpeg 的目录中。

第四步

转到开始>所有程序>Microsoft Visual Studio 2017>Visual Studio 工具 > VS2017 开发人员命令提示

导航到您刚刚解压缩的目录。那将是这样的:

cd libjpeg
cd jpeg-9b

第 5 步

现在您需要找到一个名为 win32.mak 的文件。我在 C:\Program Files\Microsoft SDKs\Windows\v7.0\Include 中找到了我的。如果您有 Windows 8.1 SDK,您的可能在其他地方。无论如何,无论它在哪里,您都需要将其包含目录添加到您的包含中。所以我做了:

set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v7.0\Include

第 6 步

现在运行 nmake 来获取您的 SLN - 一些奇怪的 Microsoft “解决方案” 文件。命令是:

nmake -f makefile.vc setup-v10

你应该得到一个名为 jpeg.sln 的文件 - 欢呼!

第七步

现在启动 Visual Studio 2017,打开您刚刚创建的 jpeg.sln 文件并构建项目。它将在您的 libjpeg 目录中创建一个 Release 目录,在 Release 目录中您将找到 jpeg.lib。您现在已经安装了 libjpeg

enter image description here

第 8 步

关闭该项目,并启动一个新的 C++ 命令行项目并编写基于 CImg 的程序。我写了有史以来最简单的:

#define cimg_use_jpeg
#include "CImg.h"
using namespace cimg_library;
int main() {
CImg<unsigned char> img("C:\\Users\\Mark\\test.jpg");
img.display("Image");
return 0;
}

第 9 步

Github下载CImg.h ,并将其保存在您的 HOME 目录中名为 CImg 的目录中。

第 10 步

现在告诉 Visual Studio 包含文件(对于 CImglibjpeg)在哪里以及库文件(对于 libjpeg)在哪里:

enter image description here

第十一步

现在告诉 Visual Studio 2017 你想与 libjpeg 链接:

enter image description here

第十二步

现在您可以编译、链接和运行您的CImg 程序并加载JPEG 文件并将它们显示在屏幕上!

enter image description here


如果您在 Linux/ma​​cOS 上使用 cmakethis answer为您指路。


如果您从命令行在 ma​​cOS 上编译,如果您要在屏幕上显示图像,则需要安装 XQuartz,并且您需要像这样:

g++ -std=c++11  sample.cpp -o sample -I /opt/X11/include -L /opt/X11/lib -lX11 -ljpeg -lpng -lz

关于c++ - 无法使用 CImg 加载任何图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055720/

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