Magick++ は、利用可能な最も包括的なオープンソース画像処理パッケージである ImageMagick 画像処理ライブラリへのオブジェクト指向 C++ API です。Magick++ の最新の NEWS と ChangeLog をお読みください。
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 の詳細な インストール手順 に従ってください。
使用方法
Magick++ を使用するプログラムのコンパイルとリンクに必要なコンパイルオプションを記憶するために、Magick++-config という名前のヘルパースクリプトが Unix にインストールされています。たとえば、次のコマンドを実行すると、ソースファイル 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 など) で画像をビデオゲームレートで表示することに興味があるユーザーは、Magick++ と OpenPTC の間の単純なインターフェイスを提供する PtcMagick を試すことができます。