每当我尝试加载图像时,都会出现错误提示CImg<unsigned char>::load(): Failed to recognize format of file。jpg和png文件都会发生这种情况。
我找到了关于这个说法的其他帖子来定义cimg_use_png和cimg_use_jpeg,但是然后我遇到编译错误告诉我我需要png.n和jpeglib.h。不知道我应该从哪里得到这些。
我不确定我哪里出了问题,所以我不知道具体要问些什么。怎么了?
如果要打开JPEG映像,则需要安装libjpeg并编译并链接到该映像。
如果要打开PNG图像,则需要安装libpng和libz(用于压缩)并针对它们进行编译和链接。
目前,您应该能够使用NetPBM格式的图像-即PBM,PGM和PPM。
好了,在经历了两天的痛苦工作之后,我试图弄清楚Earth Visual Studio 2017的工作原理以及如何安装和集成libjpeg它之后,我现在可以解释如何在Windows上安装CImg和libjpeg。
步骤1
您需要安装Visual Studio 2017,这意味着您需要Windows 7 SP1或更高版本。安装时,请确保包括“ Windows 8.1 SDK”
第2步
libjpeg从IJG网站下载。我jpegsr9b.zip认为这是最新的。
第三步
解压缩文件并将其存储libjpeg在HOME目录中的目录中。
第四步
转到开始>所有程序> Microsoft Visual Studio 2017> Visual Studio工具> VS2017开发人员命令提示符
导航到刚刚解压缩的目录。那将是这样的:
cd libjpeg
cd jpeg-9b
Run Code Online (Sandbox Code Playgroud)
第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
Run Code Online (Sandbox Code Playgroud)
第6步
现在运行nmake以获取您的SLN-一些奇怪的Microsoft “解决方案”文件。该命令是:
nmake -f makefile.vc setup-v10
Run Code Online (Sandbox Code Playgroud)
而且您应该得到一个名为jpeg.sln-欢呼的文件!
步骤7
现在启动Visual Studio 2017,然后打开jpeg.sln您刚刚创建的文件并生成项目。它将Release在您的libjpeg目录中和Release您将在目录中创建一个目录jpeg.lib。您现在已经安装了libjpeg。
步骤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;
}
Run Code Online (Sandbox Code Playgroud)
步骤9
CImg.h从Github下载,并将其保存CImg在HOME目录中的目录中。
第10步
现在告诉Visual Studio包含文件(用于CImg和libjpeg)在哪里,库文件(用于libjpeg)在哪里:
步骤11
现在告诉Visual Studio 2017您要链接libjpeg:
步骤12
现在,您可以编译,链接和运行CImg程序,并加载JPEG文件并将其显示在屏幕上!
如果您cmake在Linux / macOS上使用,则此答案将向您显示方法。
如果要从命令行在macOS上进行编译,则在屏幕上显示图像时需要安装XQuartz,并且您需要以下内容:
g++ -std=c++11 sample.cpp -o sample -I /opt/X11/include -L /opt/X11/lib -lX11 -ljpeg -lpng -lz
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2027 次 |
| 最近记录: |