http://www.cnblogs.com/hicjiajia/archive/2011/01/26/1945666.html
ImageMagick 是個不錯的東東,很有名,這裡就不介紹了,今天在網上四處找開發人員資料,可惜的是網上這方面的資料少的可憐,可以說就沒有,後來終於找到一篇,原文在http://hi.baidu.com/soulmachine/blog/item/b8b1c416a57b951c962b435f.html/cmtid/3c5fc03f317382cc7c1e71a9,這裡我根據他的文章外加我的實踐自己補充了一點。Window
XP SP3 + VC2010 + ImageMagick6.6.7-Q16 。
一、下載
http://www.imagemagick.org/script/download.php 開啟網頁後選個FTP/HTTP下載點,直接下載就可以了。我下的是:ImageMagick-6.6.7-2-Q16-windows-dll
版
二、安裝
在安裝過程中會出現該畫面:
勾選前四項(第四項為開發人員提供支援)。
三、DIY
安裝完後到ImageMagick-6.3.7-Q16\Magick++_Demo下開啟Magick++_Demo.dsw檔案,如果你用的是VC6以上的版本,會提示你轉化格式,選擇"Yes to All"。然後VS會自動轉化並開啟專案檔,
右擊button工程 —> 編譯,很快就成功了,到ImageMagick-6.3.7-Q16\Magick++_Demo目錄下會多出一個button.exe檔案,我們雙擊運行它,一會就會在目前的目錄下產生一個button_out.miff檔案,雙擊button_out.miff檔案,看看效果
就這麼幾步,我們已經編譯運行成功了第一個例子,但是這個例子是人家做好的,接下來我們來做一個自己的例子,建立一個Console Application工程,代碼不自己寫了,還是直接copy button.cpp那個例子的吧,記得粘貼後還得在代碼最前加上一句#include "stdafx.h"。
開啟“Toos->Options”,在彈出的對話方塊中展開“Projects and Solutions”,選擇"VC++ Directories",
這裡我要說明的一點是,我在Window下裝的是VC++2010
專業版,但是"VC++ Directories"項開啟以後是空白的,
可能是我編譯器版本的問題吧,對於這個情況我們在文章最後再說。
選擇"Inculde files",點擊按鈕添加一行,如下所示:
點擊右邊的瀏覽按鈕,添加ImageMagic提供的include 目錄,我的是C:\Program Files\ImageMagick-6.3.7-Q16\include,添加完後
不慌,還需要添加lib,選擇Library files,
同樣,添加lib路徑,例如我的是:C:\Program Files\ImageMagick-6.3.7-Q16\lib。
接下來要設定工程了,選擇“Project”菜單最下的“XXX Properties”,選擇“Configuration Properties->Linker->Input”,在右邊選擇“Additional Dependencies”,點擊瀏覽按鈕,把內建的button例子的對應的設定複製過來,
這個步驟的意義主要是告訴連接器要連結CORE_RL_magick_.lib CORE_RL_Magick++_.lib兩個lib檔案,因此其實只要在粘貼兩個即可,其他的都是多餘的。
接下來就可以build了。(運行時dll的路徑不用自己添加,因為安裝時會自動把C:\Program Files\ImageMagick-6.3.7-Q16添加到path中,在DOS命令下輸入path就可以看到。這個目錄下有很多dll,是程式運行時需要的dll。)
在實踐過程中,在Debug模式下,順利編譯並產生了exe檔案,但是啟動並執行時候出錯:
後來我又用Release模式編譯了下,Release模式下一切順利,沒有任何問題!
目前依然有個嚴重的問題,就是ImageMagick-6.3.7-Q16\Magick++_Demo下的zoom那個例子雖然編譯通過,但是運行會崩潰,通過調試發現只要是讀檔案,都會失敗,在VC6和VS2008下都是如此,鬱悶。
關於"VC++
Directories"目錄項為空白:
對於這個情況,我也不是十分瞭解,網上也有很多朋友和我的情況是一樣的,臨時的解決方案就是單獨為每一個項目設定檔案包含和庫包含路徑,我們在項目項右擊—>屬性,然後在這裡按上面的步驟編輯即可,但是這樣比較麻煩的,每個項目都要DIY一次,等我再研究研究....
在Windows下我經常使用的是DEV-CPP,不過在編譯過程中會出現莫名錯誤,在網上找了半天也沒能解決,於是轉到了VC2010下,肯能是由於DEV-CPP有點out了吧...