マジセミドライブ

ウェビナー関連のニュースや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

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。