📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == <br><br> == ImageMagickのインストール == ==== パッケージ管理システムからインストール ==== # RHEL sudo dnf install ImageMagick-devel libMagick++-devel # SUSE sudo zypper install ImageMagick-devel libMagick++-devel <br> ==== ソースコードからインストール ==== <br><br> == 基本的な使用例 == 以下の例では、ImageMagickライブラリを使用して、画像処理 (ノイズ除去、コントラスト…」
 
1行目: 1行目:
== 概要 ==
== 概要 ==
ImageMagickライブラリは、画像処理を行う場合の強力なツールである。<br>
画像の読み込み、編集、変換、保存等、包括的な画像処理機能を提供している。<br>
<br>
ImageMagickライブラリは200以上の画像フォーマットをサポートしており、プロフェッショナルな画像処理が可能である。<br>
<br>
画像の変換や編集において、ぼかし、シャープ化、回転、リサイズ等の基本的な操作から高度なフィルタ処理まで実行できる。<br>
また、画像のメタデータの読み取りや編集も可能である。<br>
<br>
ImageMagickライブラリのパフォーマンスについて、大量の画像処理を行う場合はメモリ使用量に注意が必要となる。<br>
必要に応じて、画像のキャッシュサイズを調整することができる。<br>
<br>
<u>スレッド安全性のにおいて、ImageMagickライブラリは基本的にスレッドセーフであるが、初期化処理は必ずメインスレッドで行う必要がある。</u><br>
<br>
ImageMagickライブラリは高度な画像処理機能を提供する強力なツールとして活用できる。<br>
上記の例は基本的な使用方法の一部であり、さらに多くの機能や最適化オプションが用意されている。<br>
<br><br>
== 画像の読み込み ==
<syntaxhighlight lang="c++">
#include <Magick++.h>
// ライブラリの初期化
Magick::InitializeMagick(nullptr);
// 画像の読み込み
Magick::Image image;
image.read("input.jpg");
</syntaxhighlight>
<br><br>
== 画像のサイズ変更 ==
<syntaxhighlight lang="c++">
#include <Magick++.h>
// ライブラリの初期化
Magick::InitializeMagick(nullptr);
// 画像のリサイズ
image.resize(Magick::Geometry(800, 600));
</syntaxhighlight>
<br><br>
== 画像の保存 ==
<syntaxhighlight lang="c++">
#include <Magick++.h>
// ライブラリの初期化
Magick::InitializeMagick(nullptr);
// 画像の保存
image.write("output.png");
</syntaxhighlight>
<br><br>
== 画質調整 ==
JPEG画質の設定やノイズ除去等、画質に関する詳細な制御が可能である。<br>
<syntaxhighlight lang="c++">
#include <Magick++.h>
// ライブラリの初期化
Magick::InitializeMagick(nullptr);
Magick::Image image("input.jpg");
// JPEG品質を85%に設定
image.quality(85);
image.write("output.jpg");
</syntaxhighlight>
<br><br>
== エラーハンドリング ==
ImageMagickライブラリは、専用の例外処理を使用してエラーを処理する。<br>
<br>
<syntaxhighlight lang="c++">
#include <Magick++.h>
// ライブラリの初期化
Magick::InitializeMagick(nullptr);
try {
    Magick::Image image;
    image.read("nonexistent.jpg");
}
catch (Magick::Exception &error) {
    qDebug() << "エラー: " << QString::fromStdString(error.what());
}
</syntaxhighlight>
<br><br>
<br><br>