ImageMagickは、設定ファイル、ロード可能なモジュール、フォント、環境変数など、多くの外部リソースに依存しています。
設定ファイル
ImageMagickは、ここに詳述されている多くの外部設定ファイルに依存しています。
- coder.xml
- 指定されたコーダーモジュールに画像形式を関連付けます。ImageMagickには、画像形式(例:JPEG)の読み取りと/または書き込みをサポートする多くのコーダーモジュールがあります。一部のコーダーモジュールは、複数の関連付けられた画像形式をサポートしており、関連付けられた形式とその対応するコーダーモジュール間のマッピングはこの設定ファイルで定義されています。たとえば、PNGコーダーモジュールはPNG画像形式だけでなく、JNG形式とMNG形式もサポートしています。
- colors.xml
- 色名とその赤、緑、青、アルファの強度を関連付けます。多くのコマンドラインオプションでは、色のパラメータが必要です。16進値(例:#fff)ではなく、名前(例:white)で色を参照する方が便利なことがよくあります。このファイルは、色名を対応する赤、緑、青、アルファの強度(例:whiteの場合、赤=255、緑=255、青=255、アルファ=0)にマッピングします。
- configure.xml
- ImageMagickのビルドパラメータとシステム全体の環境変数(例:MAGICK_TEMPORARY_PATH)を設定します。ImageMagickがビルドされると、多くのビルドパラメータがこの設定ファイルに保存されます。それらには、バージョン、リリース日、依存するデリゲートライブラリ、量子深度などが含まれます。
- delegates.xml
- デリゲートプログラムを特定の画像形式に関連付けます。ImageMagickは、RAWカメラ形式を読み取るdarktableや、Postscript画像を読み取るGhostscriptなど、多くのデリゲートプログラムに依存しています。この設定ファイルを使用して、入力または出力形式を外部デリゲートプログラムにマッピングします。
- english.xml
- メッセージタグを英語の翻訳に関連付けます。
- francais.xml
- メッセージタグをフランス語の翻訳に関連付けます。
- locale.xml
- メッセージタグをロケールの翻訳に関連付けます。ImageMagickには、タグとして表される多くの情報、警告、およびエラーメッセージがあります。タグは、FileNotFoundやMemoryAllocationFailedなどのメッセージの短い説明です。この設定ファイルは、ImageMagickで認識される各タグの翻訳を持つロケールをリストしています。現在、english.xmlおよびfrancais.xml設定ファイルには、英語とフランス語の翻訳のみが用意されています。
- log.xml
- ログのパラメータを設定します。ImageMagickは、大量の情報またはデバッグステートメントを出力できます。このファイルを使用して、情報がログメッセージにどのように表示されるか、およびログメッセージをどこに投稿するかを設定します。
- mime.xml
- インターネットメディアタイプを一意の識別子に関連付けます。多くのファイルとデータストリームには、特定のインターネットメディアタイプを一意に識別する識別子が付いています。たとえば、「Corel Draw drawing」形式(mime type="application/vnd.corel-draw")のファイルは、ファイル名パターン*.cdrに関連付けられており、「CDRXvrsn」という文字列も付いています。ImageMagickは、利用可能な場合、この情報の組み合わせを使用して、ファイルまたはデータストリームのインターネットメディアタイプを迅速に判断しようとします。
- policy.xml
- ImageMagickのセキュリティポリシーを設定します。デフォルトでは、コーダー、デリゲート、フィルタ、またはファイルパスはすべて許可されています。ポリシーを使用して、たとえばMPEGビデオデリゲートへのアクセスを拒否したり、ファイルシステムからの画像の読み取りを許可する一方で、同じファイルシステムへの書き込みを拒否したりします。または、リソースポリシーを使用してリソースの制限を設定します。ポリシーは、ImageMagickがシステム全体に与える影響を制限したいマルチユーザーサーバーに役立ちます。たとえば、メモリ内の最大画像サイズを100MPに制限するには
<policy domain="resource" name="area" value="100MP"/>
この領域制限よりも大きい画像は、メモリではなくディスクにキャッシュされます。widthを使用して、画像の最大幅をピクセル単位で制限します。この制限を超えると、例外がスローされ、処理が停止します。<policy domain="resource" name="width" value="8KP"/>
任意のImageMagickコマンドの経過時間を5分に制限するには、このポリシーを使用します。<policy domain="resource" name="time" value="300"/>
便宜上、SI接頭辞(例:100MB)を使用してメモリ、マップ、ディスクリソースの引数を定義します。さらに、リソースポリシーはImageMagickの各インスタンスの最大値です(例:ポリシーメモリ制限1GB、-limit 2GBオプションはポリシーの最大値を超えるため、メモリ制限は1GBです)。 - quantization-table.xml
- カスタムJPEG量子化テーブル。-define:q-table=quantization-table.xmlで有効にします。
- thresholds.xml
- 順序付きポスター化ディザリングのしきい値マップを設定します。
- type.xml
- フォントを設定します。ImageMagick内で使用したいフォントのフォント名、ファミリー、ファウンドリ、スタイル、形式、メトリクス、およびグリフを定義します。
- type-ghostscript.xml
- Ghostscriptフォントを設定します。Ghostscriptパッケージには、ImageMagickでアクセスできる多くのフォントが含まれています。
- type-windows.xml
- Windowsフォントグリフに名前を関連付けます。
LinuxおよびLinuxでは、ImageMagickは上記の各設定ファイルを下記の場所に順に検索し、見つかった場合はロードします。
$MAGICK_CONFIGURE_PATH $PREFIX/etc/ImageMagick-7 $PREFIX/share/ImageMagick-7 $XDG_CACHE_HOME/ImageMagick $HOME/.config/ImageMagick <client path>/etc/ImageMagick
環境変数$PREFIXはデフォルトのインストールパスです(例:/usr/local)。クライアントパスは、ImageMagickクライアントの実行パスです(例:/usr/local)。
LinuxまたはLinuxの事前にコンパイルされたアンインストール済みバイナリ配布の場合、設定のロード順序は次のとおりです。
$MAGICK_CONFIGURE_PATH $MAGICK_HOME/etc/ImageMagick-7 $MAGICK_HOME/share/ImageMagick-7 $PREFIX/share/ImageMagick-7 $XDG_CACHE_HOME/ImageMagick $HOME/.config/ImageMagick/ <client path>/etc/ImageMagick <current directory>
Windowsでは、ImageMagickはこれらの設定ファイルを以下の順序で検索し、見つかった場合はロードします。
$MAGICK_CONFIGURE_PATH <windows registry> $PREFIX/config $USERPROFILE/.config/ImageMagick <client path>
上記で、$PREFIXはデフォルトのインストールパスであり、通常はc:\\Program Files\\ImageMagick-7.1.1です。
アンインストールされたWindowsインストールの場合、設定のロード順序は次のとおりです。
$MAGICK_CONFIGURE_PATH $MAGICK_HOME $USERPROFILE/.config/ImageMagick client path <current directory>
設定ファイルが見つからない場合、ImageMagickは組み込みのデフォルト値に依存します。
モジュール
コーダー
画像コーダー(エンコーダー/デコーダー)は、1つの画像形式(例:PNG、GIF、JPEGなど)の登録、オプションによる分類、オプションによる読み取り、オプションによる書き込み、および登録解除を担当します。ImageMagickは、以下の順序でコーダーを検索し、見つかった最初のマッチを使用します。
$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/coders <client path>/../lib/ImageMagick-7.1.1/modules-Q16/coders $MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/coders $MAGICK_HOME/share/ImageMagick-7.1.1/modules-Q16/coders $XDG_CACHE_HOME/ImageMagick $HOME/.config/ImageMagick <client path>/lib/ImageMagick-7.1.1/modules-Q16/coders
フィルタ
ImageMagickは、独自の画像処理アルゴリズムを追加するための便利なメカニズムを提供します。ImageMagickは、以下の順序でフィルタを検索し、見つかった最初のマッチを使用します。
$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/filters <client path>/../lib/ImageMagick-7.1.1/modules-Q16/filters $MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/filters $MAGICK_HOME/share/ImageMagick-7.1.1/modules-Q16/filters $XDG_CACHE_HOME/ImageMagick $HOME/.config/ImageMagick <client path>/lib/ImageMagick-7.1.1/modules-Q16/filters
フォント
ImageMagickは、生のTrueTypeフォントファイルとPostscriptフォントファイルをロードできます。以下の順序でフォント設定ファイルtype.xmlを検索し、見つかった場合はロードします。
$MAGICK_CONFIGURE_PATH $MAGICK_HOME/etc/ImageMagick/-7.1.1 $MAGICK_HOME/share/ImageMagick-7.1.1 $XDG_CACHE_HOME/ImageMagick $HOME/.config/ImageMagick <client path>/etc/ImageMagick $MAGICK_FONT_PATH
環境変数
ImageMagickで認識される環境変数には以下が含まれます。
HOME | ディレクトリが存在する場合は、$HOME/.config/ImageMagickで設定ファイルを検索するパスを設定します。 |
LD_LIBRARY_PATH | ImageMagickの共有ライブラリおよびその他の依存ライブラリへのパスを設定します。 |
MAGICK_AREA_LIMIT | ピクセルキャッシュメモリに常駐できる画像の最大幅 * 高さを設定します。領域制限を超える画像は、ディスク(MAGICK_DISK_LIMITを参照)にキャッシュされ、オプションでメモリマップされます。 |
MAGICK_CODER_FILTER_PATH | (-processを介して呼び出される)フィルタプロセスモジュールを検索するときに使用する検索パスを設定します。このパスにより、ユーザーは、ImageMagickインストールディレクトリにコピーするのではなく、優先される場所にロード可能なモジュールを追加することで、ImageMagickの画像処理機能を拡張できます。検索パスの形式は、オペレーティングシステムの検索パスに似ています(つまり、Linuxの場合はコロン区切り、Microsoft Windowsの場合はセミコロン区切り)。このユーザー指定の検索パスは、デフォルトの検索パスを試す前に検索されます。 |
MAGICK_CODER_MODULE_PATH | ImageMagickがコーダーモジュールを見つけることができるパスを設定します。このパスにより、ユーザーは、ImageMagickインストールディレクトリにコピーするのではなく、優先される場所にロード可能なコーダーモジュールを追加することで、ImageMagickでサポートされる画像形式を任意に拡張できます。検索パスの形式は、オペレーティングシステムの検索パスに似ています(つまり、Linuxの場合はコロン区切り、Microsoft Windowsの場合はセミコロン区切り)。このユーザー指定の検索パスは、デフォルトの検索パスを試す前に検索されます。 |
MAGICK_CONFIGURE_PATH | ImageMagickが設定ファイルを見つけることができるパスを設定します。この検索パスを使用して、設定(.xml)ファイルを検索します。検索パスの形式は、オペレーティングシステムの検索パスに似ています(つまり、Linuxの場合はコロン区切り、Microsoft Windowsの場合はセミコロン区切り)。このユーザー指定の検索パスは、デフォルトの検索パスを試す前に検索されます。 |
MAGICK_DATE_PRECISION | タイムスタンプに対して出力される文字の最大数を設定します。 |
MAGICK_DEBUG | デバッグオプションを設定します。-debugでデバッグオプションの説明を参照してください。 |
MAGICK_DISK_LIMIT | ピクセルキャッシュで使用できるディスク容量の最大バイト数を設定します。この制限を超えると、ピクセルキャッシュは作成されず、エラーメッセージが返されます。 |
MAGICK_ERRORMODE | プロセスのエラーモードを設定します(Windowsのみ)。一般的な使用方法としては、値を1に設定して、エラーモードダイアログがメッセージボックスを表示してアプリケーションをハングするのを防ぐことができます。 |
MAGICK_FILE_LIMIT | 開いているピクセルキャッシュファイルの最大数を設定します。この制限を超えると、ディスクにキャッシュされる後続のピクセルは閉じられ、必要に応じて再開されます。この動作により、ディスク上の多数の画像に同時にアクセスできますが、繰り返しの開閉呼び出しにより速度が低下します。 |
MAGICK_FONT_PATH | ImageMagickがTrueTypeおよびPostscript Type1フォントファイルを検索するパスを設定します。このパスは、特定のフォントファイルが現在のディレクトリに見つからない場合にのみ参照されます。 |
MAGICK_HEIGHT_LIMIT | 画像の最大高さを設定します。 |
MAGICK_HOME | ImageMagickインストールディレクトリの最上位のパスを設定します。このパスは、場所がハードコードされていないか、インストーラーによって設定されていないImageMagickのアンインストール済みビルドによって参照されます。 |
MAGICK_LIST_LENGTH_LIMIT | 画像シーケンスの最大長を設定します。 |
MAGICK_MAP_LIMIT | ピクセルキャッシュに割り当てるメモリマップの最大バイト数を設定します。この制限を超えると、画像ピクセルはディスク(MAGICK_DISK_LIMITを参照)にキャッシュされます。 |
MAGICK_MEMORY_LIMIT | ヒープからピクセルキャッシュに割り当てるメモリの最大バイト数を設定します。この制限を超えると、画像ピクセルはメモリマップされたディスク(MAGICK_MAP_LIMITを参照)にキャッシュされます。 |
MAGICK_OCL_DEVICE | 特定のアクセラレータアルゴリズム(例:ぼかし、畳み込みなど)のハードウェアアクセラレーションを無効にするには、offに設定します。 |
MAGICK_PRECISION | 出力される有効数字の最大数を設定します。 |
MAGICK_SHRED_PASSES | ImageMagickが作成する一時ファイルをプライベートに保ちたい場合は、削除される前に0またはランダムデータで上書きします。最初のパスでは、ファイルは0に設定されます。後続のパスでは、ランダムデータが書き込まれます。 |
MAGICK_SYNCHRONIZE | 全ての画像データを完全にフラッシュし、ディスクに同期させるには、「true」に設定します。ただし、パフォーマンスに影響が出ます。しかし、システムクラッシュの場合に有効な画像ファイルが確保されること、画像ピクセルキャッシュに十分なディスク容量がない場合に早期にレポートされることが利点です。 |
MAGICK_TEMPORARY_PATH | 一時ファイルを保存するパスを設定します。 |
MAGICK_THREAD_LIMIT | 最大並列スレッド数を設定します。多くのImageMagickアルゴリズムは、マルチプロセッサシステムで並列実行されます。この環境変数を使用して、並列実行を許可される最大スレッド数を設定します。 |
MAGICK_THROTTLE_LIMIT | ミリ秒単位で指定された時間以上、定期的にCPUを解放します。 |
MAGICK_TIME_LIMIT | 最大時間を秒単位で設定します。この制限を超えると、例外がスローされ、処理が停止します。 |
MAGICK_WIDTH_LIMIT | 画像の最大幅を設定します。 |
SOURCE_DATE_EPOCH | 閏秒を除く、1970年1月1日00:00:00 UTCからの秒数で定義されるUNIXタイムスタンプです。パイプラインビルドのための特別な設定です。この設定により、存続時間の設定が無効になります。 |
MAGICK_MEMORY_LIMIT、MAGICK_DISK_LIMIT、およびMAGICK_MEMORY_LIMIT環境変数の引数をSI接頭辞(例:100MB)で定義します。MAGICK_WIDTH_LIMIT、MAGICK_HEIGHT_LIMIT、MAGICK_AREA_LIMITは、メガピクセル(MP)などのピクセル接尾辞を受け入れます(例:100MP)。制限はセキュリティポリシーを基準に制限できますが、緩和することはできません。