マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】ImageMagick

【OSS情報アーカイブ】ImageMagick

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「ImageMagick」とは

概要

ImageMagick(イメージマジック)は画像処理ライブラリです。コマンドラインツールやAPIライブラリとして利用します。非常に多くの画像フォーマットに対応し、豊富かつ高機能な画像処理機能を提供します。「スレッドによる高速処理」や「巨大サイズ画像処理サポート」などの特徴があります。

基本説明

ImageMagickは、200種類以上の画像フォーマットに対応しています。

「サイズ変更」「反転」「ミラーリング」「回転」「変形」「せん断」「色調整」「特殊効果適用」などの画像処理が可能です。

オフィシャルサイト情報

■オフィシャルサイト

→imagemagick.org

■GitHub

→github.com →ImageMagick/ImageMagick

■ライセンス情報

ImageMagickのライセンスは「the ImageMagick License」です。

詳細について、こちらを参照ください。
→imagemagick.org →license

■動作環境

以下の各OSがサポートされています。

・Unix
・MacOSX
・iOS
・Android
・Windows

■ダウンロード

→imagemagick.org →download

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「GraphicsMagick」など。

大きな画像サイズのサポート

ImageMagickは、テラピクセルクラスまでの画像サイズに対応できます。

64ビットOSにおける画像の幅または高さは、最大9エクサピクセルの範囲となります。

ただし、一部画像形式には画像サイズ制限があり、Photoshop画像の場合、幅または高さが300,000ピクセルに制限されています。

■分散ピクセルキャッシュ

「分散ピクセルキャッシュ」とは、単一ホストで利用可能な「ローカルピクセルキャッシュ」の拡張で、複数サーバにまたがるピクセルキャッシュを構成できます。1つ以上のホストでリモートピクセルキャッシュサーバを構成します。

「ローカルピクセルキャッシュ」のリソースが使い果たされると、ImageMagickはこれらのリモートピクセルキャッシュサーバに接続して、ピクセルキャッシュをスケーリングします。構成サーバ台数を増やすことで、「非常に大きな画像」または「非常に大きな画像シーケンス」をサポートできます。

分散ピクセルキャッシュは、ネットワーク帯域幅に依存して、リモートピクセルキャッシュサーバとの間でピクセルをマーシャリングします。そのため、ローカルピクセルキャッシュよりも大幅に処理速度が低下する場合があります。

スレッド化実行

ImageMagickの内部アルゴリズムの多くは、マルチコアプロセッサチップによって提供されるスピードアップを利用するためにスレッド化されています。

複数の実行スレッドでピクセルキャッシュにアクセスするためには「キャッシュビュー」を使用します。

ほとんどの場合、最適なパフォーマンスを得るために、デフォルトのスレッド数はシステム上のプロセッサコアの数に設定されています。

■OpenMPサポート

ImageMagickは「OpenMP(Open MultiProcessing)」をサポートしています。

OpenMP APIとは、「C」「C++」「Fortran」でのマルチプラットフォーム共有メモリ並列プログラミングをサポートします。デスクトップからスーパーコンピューターまでのプラットフォームで、並列アプリケーションを開発するためのシンプルかつ柔軟なインターフェースを備えており、スケーラブルなモデルを定義できます。

ImageMagickのほとんどの内部アルゴリズムは、OpenMPに対応しているため、マルチコアプロセッサチップによって提供される高速化を利用できます。

■スレッドセーフ

「MagickWandAPI」などのプログラムインターフェースは完全にスレッドセーフであるため、実行スレッドに特別な注意を払う必要はありません。

異種分散処理による高速化

ImageMagickには「OpenCLフレームワーク」による異種分散処理サポートが含まれています。

OpenCL(Open Computing Language)とは、「スーパーコンピューター」「クラウドサーバ」「パーソナルコンピューター」「モバイルデバイス」「組み込みプラットフォーム」などに対して、クロスプラットフォーム並列プログラミングを実行するためのオープン標準です。

ImageMagick内のOpenCLカーネルにより「CPU」「GPU」「その他のプロセッサ」で構成される異種プラットフォーム間で画像処理アルゴリズムを実行できます。

特定のアルゴリズムはOpenCL対応であり、マルチコアプラットフォームなどと接続し協調して実行することで、シングルCPUよりも桁違いに高速化できる場合があります。

「ImageMagick」の主な機能

フォーマット変換

画像を「あるフォーマット」から「別のフォーマット」に変換します。

PNGからJPEGなど。

→imagemagick.org →convert

画像変換

画像に対して「サイズ変更」「回転」「トリミング」「反転」「トリミング」などの処理を実施します。

→legacy.imagemagick.org →Usage →resize

透明度処理

「透明度チャネル」を使用して、透明度を調整します。

「不要な背景」「テキスト」などの不要な要素を非表示化します。

→legacy.imagemagick.org →Usage →masking

描画

ImageMagickにおける「描画」とは、既存画像に新しい要素を追加することを意味します。

画像に「図形」や「テキスト」を追加します。

→legacy.imagemagick.org →Usage →draw

装飾

画像に「境界線」や「フレーム」を追加します。

→legacy.imagemagick.org →Usage →crop

特殊効果

画像の「ぼかし」「色合い」「鮮明化」などを調整します。

→legacy.imagemagick.org →Usage →blur

テキストとコメント

画像に「説明的テキスト」または「芸術的テキスト」を挿入します。

→legacy.imagemagick.org →Usage →text

画像グラデーション

「線形」「円形」「楕円形」の形状に形成された2つの色の段階的なブレンドグラデーションを作成します。

→imagemagick.org →gradient

画像識別

1つ以上の画像ファイルの「形式」と「属性」を説明します。

・画像番号
・ファイル名
・画像の幅と高さ
・カラーマップ
・色数
・バイト数
・画像形式
・画像破損状態 など

→imagemagick.org →identify

画像合成

「ある画像」を「別の画像」に重ねます。

→imagemagick.org →composite

モンタージュ

複数の個別画像を組み合わせて合成画像を作成します。

画像のサムネイルをキャンバスに並べます。

「境界線」「フレーム」「画像名」などで装飾できます。

→imagemagick.org →montage

歪み処理

遠近法を含む画像の歪み表現を追加します。

「モーフのような歪み」などのさまざまなパターンで作成できます。

→legacy.imagemagick.org →Usage →distorts

画像内パターン認識

画像の特徴を抽出し、形状を記述し、画像内のパターンを認識します。

画像を囲む他のピクセル近くの近傍に基づいて、さまざまな方法で画像を変更します。

これによりさまざまな効果が得られます。
・シェイプの拡大と縮小
・エッジからの距離
・正中線軸までの細線化 など

→legacy.imagemagick.org →Usage →morphology

画像特徴描写

「キャニーエッジ検出」「平均シフト」「ハフライン」などの処理を実行できます。

→legacy.imagemagick.org →Usage →transform →vision

映画画像形式のサポート

「DPX:SMPTE 268M-2003」などの、デジタルフィルム作業で使用される画像形式の読み取りと書き込みをサポートします。

このフォーマットは、映画およびエフェクト業界で使用されており、広範なヘッダ情報を持ち、さまざまなビット深度で高ダイナミックレンジおよび対数カラー値を処理できます。

→imagemagick.org →motion-picture

FX特殊効果画像オペレーター

FX特殊効果画像演算子を使用して、1つまたは複数の画像チャネルに数式を適用します。

・「キャンバス」「グラデーション」「数学的カラーマップ」を作成
・画像とチャンネル間でカラー値を移動
・画像処理:「変換」「反転」「ミラーリング」「回転」「拡大縮小」「せん断」「一般的な歪み」
・複数画像の「マージ」または「合成」
・隣接ピクセルに対する「畳み込み」と「マージ」
・「画像メトリック」または「フィンガープリント」を生成

→imagemagick.org →fx

連結成分ラベリング

画像内の連結成分に一意のラベルを付けます。

→imagemagick.org →connected-components

離散フーリエ変換

フーリエ変換を利用すると、使い慣れた処理を行うための新しい方法を提供できます。

・明るさとコントラストの向上
・ぼかし
・シャープネス
・ノイズ除去 など

→legacy.imagemagick.org →Usage →fourier

知覚ハッシュ

視覚的に同一の画像を同じまたは類似のハッシュにマッピングします。

「画像検索」「認証」「インデックス作成」「コピー検出」「電子透かし」などに利用できます。

→fmwconcepts.com →perceptual_hash_test_results

カラーマネジメント

カラープロファイルを使用した正確なカラーマネジメントが可能です。

→imagemagick.org →color-management

バイラテラルブラー

各ピクセルの強度を、近くのピクセルからの強度値の加重平均に置き換えます。

「非線形」「エッジ保存」「ノイズ低減用スムージングフィルター」などで利用できます。

→imagemagick.org →command-line-options →bilateral-blur

ハイダイナミックレンジイメージング

標準デジタルイメージング技術よりも、はるかに広いダイナミックレンジ露出を可能にします。

「最も明るい直射日光」から「最も深い暗い影」まで、実際のシーンで見られる広範囲の強度レベルを正確に表します。

→imagemagick.org →high-dynamic-range

画像暗号化(復号化)

「通常画像」を「理解できない意味不明な画像」に変換後、パスフレーズによって元に戻す機能です。

元画像が表示されないようにスクランブル化できます。

ピクセルのみがスクランブル化されるため、スクランブル化画像はそのまま画像として認識され、Webページにも表示されます。

→imagemagick.org →cipher

仮想ピクセルのサポート

対象ピクセル周辺のピクセル近傍を必要とする画像処理アルゴリズムで、画像領域外ピクセルへのアクセスとして利用できます。

→imagemagick.org →architecture →virtual-pixels

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。