Magick++ 是 ImageMagick 影像處理函式庫的面向對象 C++ API,ImageMagick 是目前最全面的開源影像處理軟體包。請閱讀 Magick++ 的最新 新聞 和 更新日誌。
Magick++ 支持受 PerlMagick 啟發的對象模型。影像支持隱式引用計數,因此複製構造函數和賦值幾乎不需要成本。實際複製影像的成本(如果需要)在修改之前完成,並且此副本由 Magick++ 自動管理。取消引用的副本會自動刪除。影像對象支持值(而不是指針)語義,因此在內存中同時支持影像的多個世代非常簡單。
Magick++ 提供對 標準模板庫 (STL) 的集成支持,以便可以使用可用的強大容器(例如 deque、vector、list 和 map)來編寫類似於 PERL 和 PerlMagick 的程序。提供了 ImageMagick 列表樣式操作的 STL 兼容模板版本,以便可以對存儲在 STL 容器中的多個影像執行操作。
為構成 API 的所有 Magick++ 類、類方法和模板函數提供了詳細的 文件。請參閱 Magick++ 簡介,以獲取 Magick++ 的入門教程。我們包含了 來源,以便您更正、增強或擴展教程。
Magick++ 作為 ImageMagick 原始碼發行版的一部分提供,可以通過 ftp 或 Github 獲取。
獲得 Magick++ 原始碼後,請按照這些針對 UNIX 和 Windows 的詳細 安裝說明 進行操作。
用法
在 Unix 下安裝了一個名為 *Magick++-config* 的輔助腳本,它有助於調用編譯和鏈接使用 Magick++ 的程序所需的編譯選項。例如,以下命令將編譯原始碼文件 *example.cpp* 並將其鏈接起來,以生成可執行文件 *example*(請注意,引號是反引號)
c++ -O2 -o example example.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`
Windows 用戶可以通過手動編輯其中一個 Magick++ 示範程序的項目文件來開始使用。
**在使用 Magick++ 函式庫之前,請務必初始化 ImageMagick 函式庫**。此初始化是通過將 ImageMagick DLL 的路徑(假設與您的程序位於同一目錄中)傳遞給 InitializeMagick() 函數調用來執行的。這通常通過提供程序的路徑 (argv[0]) 來執行,如下例所示
int main( ssize_t /*argc*/, char ** argv)
{
InitializeMagick(*argv);
請通過 Magick++ 錯誤追蹤論壇 回報任何錯誤。有關使用的問題應提交至 Magick++ 討論區。
有興趣在各種平台和圖形環境(例如 Windows、X11、BeOS 和 Linux/CGI)上以視頻遊戲速率顯示影像的用戶,可能想嘗試使用 PtcMagick,它提供了 Magick++ 和 OpenPTC 之間的簡單界面。