今回は画像処理ソフト「ImageMagick」のAPIをC++とVisual Studio 2022で扱えるように環境構築を行います。
※ 過去のバージョンはセキュリティに関する脆弱性が報告されていますので最新バージョンのインストールを推奨します。
画像処理ソフト「ImageMagick」に脆弱性、情報漏洩の恐れ
1. ImageMagickとは
画像編集や画像操作に活用できるオープンソースのソフトウェアです。
コマンドラインで使用できますが、APIも存在しておりC++などに組み込んで使用することも可能です。
また幅広いファイル形式に対応していることも特徴の一つです。
2. ImageMagickのインストール
ここではWindows11を想定しています。
まず以下のサイトからインストーラをダウンロードします。

ダウンロードしたインストーラを起動すると利用規約の画面が表示されるので、同意してNextを押します。

オプションを選択します。
上2つは最初からチェックが入っていると思いますが、入ってない場合はチェックを入れます。
また、「Install development headers for C and C++」にもチェックを入れておきます。

下記の画面で問題なければ「Install」を押します。

インストールが完了するまで待ちます。

以下の画面が表示されればインストール完了です。

なお、デフォルトでは
C:\Program Files
にインストールされているかと思います。
インストールが完了したら環境変数を反映させるためPCを再起動しておきます。
3. Visual Studioの設定
Visual Studio 2022で使用するための設定を行います。
まずプロジェクトを作成し、プロジェクトのプロパティを開きます。

「構成プロパティ→C/C++→全般→追加のインクルードディレクトリ」を開きます。

includeディレクトリのパスを追加します(フォルダ名はバージョンによって変わるかもしれません)。
C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\include

次に「構成プロパティ→リンカー→全般→追加のライブラリディレクトリ」を開きます。

ライブラリディレクトリのパスを追加します。
C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\lib

以下のライブラリファイルを追加します。
CORE_RL_Magick++_.lib
CORE_RL_MagickCore_.lib
CORE_RL_MagickWand_.lib

4. 動作確認
設定が完了したら動作確認をしてみます。
今回はAPIのサンプルを参考に、以下の画像を読み込み中心を切り抜いて保存します。

#include <iostream>
#include <Magick++.h>
using namespace std;
using namespace Magick;
int main(void) {
Image image;
int w, h;
try{
image.read("shimons_labo.png");
w = image.columns();
h = image.rows();
image.crop(Geometry(w / 2, h / 2, w / 4, h / 4));
image.write("shimons_labo_crop.png");
}
catch (Exception& error_)
{
cout << "Caught exception: " << error_.what() << endl;
}
return 0;
}
実行結果はこちら。

今回は以上です。
5. 参考サイト
Magick C++ API
https://imagemagick.org/script/magick++.php






コメント