[英]CImg with jpeglib
我正在嘗試使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編譯器。 即使構建成功,在Visual Studio解決方案中也無法鏈接生成的庫libjpeg.a
。 錯誤信息:
狀態錯誤LNK2019未解析的外部符號__imp___iob在函數_output_message中引用
加載.jpg文件CImg異常時,另一個生成的庫libjpeg.dll.a引發錯誤(圖片)
經過幾次重建后,問題仍然存在。 我還嘗試使用VC編譯器,但是找不到調用build comand nmake -f makefile.vc setup-v10
時所需的必需win32.mak文件。 該文件的非官方下載無法在我的電腦上正常工作。 無法在Visual Studio中打開生成的解決方案。
是否有一些解決方法-如果沒有解決方案?
如果要使用CImg讀取/寫入JPEG圖像,則有幾種選擇:
您可以安裝libjpeg
,我已經在這里進行了詳細介紹。 如果遵循此選項,則必須使用:
#define cimg_use_jpeg
CImg將針對libjpeg
編譯和鏈接,並讀取和寫入JPEG圖像。 您將需要編譯並安裝libjpeg
才能使用此選項。
您可以安裝ImageMagick , CImg可以委托對其進行讀寫。 如果選擇此路線,請在安裝ImageMagick的過程中確保選中標題為“ Install Legacy Commands”或類似名稱的框。 使用此選項,您可以讀取和寫入JPEG以外的大約200種其他圖像格式。 這對於生成測試圖像和嘗試算法而無需編寫任何C ++也非常有用。 主要缺點是它的分布范圍很大。
如果要使用此選項,則不得#define cimg_use_jpeg
或#define cimg_use_magick
。 CImg將在運行時 magick.exe
ImageMagick的convert.exe
或magick.exe
,而ImageMagick將不會為您的Visual Studio項目所知,也不會參與其中。 您可以致電:
imagemagick_path()
在運行時告訴CImg您在哪里安裝了ImageMagick的convert.exe
或magick.exe
。 如果使用此選項,則在保存圖像時應使用通用的save()
方法,而不是save_jpeg()
或save_png()
。
到目前為止,這是最簡單的選擇。
如果要使用此選項,則必須執行以下操作:
#define cimg_use_magick
然后CImg將編譯並與Magick ++鏈接,這是ImageMagick的C ++接口。 這將需要您安裝Magick ++的源代碼,這可能是最難實現的選擇。
根據您的目標,可以想到可以安裝更簡單,更輕便的NetPBM工具,並將圖像轉換為PBM/PGM/PPM
格式,因為CImg可以原生讀取和寫入圖像而無需任何外部庫。
可以想象,可以在加載圖像時使用C ++的system()
動態地執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.