画像データには、実際の画像ピクセル以外にも、大量の付加データ(メタデータ)が関連付けられています。このメタデータは、表示、様々な計算、または後続の画像処理操作の動作変更などに役立ちます。 -formatやmontageの-labelなど、多くのオプションでパーセントエスケープを使用し、画像に関連付けられた様々なプロパティや設定を出力することができます。
プロファイルデータ | 例えば、EXIFデータには、焦点距離、露出、日付、場合によってはGPS位置などが含まれています。 |
属性 | これらは画像データに直接関与し、通常は画像処理の一部として変更されます。幅、高さ、深度、画像タイプ(色空間)、タイミング遅延、背景色などが含まれます。ほとんどの特定のパーセントエスケープはこの情報にアクセスするために使用されます。 |
プロパティ | これらは自由形式の文字列のテーブルとして保存され、可能であれば画像と共に保存されます(特にMIFFとPNG画像ファイル形式)。ラベル、キャプション、コメントなどが含まれます。 |
アーティファクト | これらは、様々なオペレーターまたは将来の使用のためにユーザーによって保存される様々な運用(専門家向け)設定です。自由形式の文字列のテーブルです。書き込み時に画像と共に保存されることはありません。「アーティファクトとオプション」で詳細を参照してください。 |
オプション | これも、様々なオペレーターによって使用するために保存される運用(専門家向け)設定ですが、画像リスト全体で使用するためにグローバルに設定されます(これも保存されません)。「アーティファクトとオプション」で詳細を参照してください。 |
パーセントエスケープの処理
%[key]などのパーセントエスケープを要求した場合、最初のマッチが見つかるまで以下の順序で設定が検索されます…
- 'artifact:'、'option:'、'exif:'、または'fx:'などの特別なプレフィックスを処理します。これには、'exif:*'または'artifact:*'などのプレフィックスの計算やグローブが含まれます(下記参照)。
- keyがグローブパターン(ただし既知のプレフィックスなし)を含む場合、自由形式のプロパティテーブルを検索します。
- keyが特別な画像「属性」名(上記リスト参照)である場合、関連付けられた、または計算された画像属性を返します。
- 自由形式の「プロパティ」として設定を検索します。
- 自由形式の「アーティファクト」として設定を検索します。
- 自由形式の「オプション」として設定を検索します。
- エスケープを空文字列に置き換え、警告を生成する場合があります。
パーセントエスケープの長形式名はすべて、大文字と小文字が区別されません。
アーティファクトとオプションの自由形式文字列テーブルに直接アクセスできるようになりました。これにより、上記のシーケンスをオーバーライドし、同じ名前の属性またはプロパティへのアクセスを回避できます。
%[artifact:setting] %[option:setting]
エスケープ処理には、画像コンテナへのアクセスが必要です。利用できない場合、式を処理して値を返すために、空の画像が作成されます。例えば、magick -print "%[fx:.8765/3.14]" null: null:。
1文字属性のパーセントエスケープ
一般的な1文字エスケープ(短形式)は、ファイル名、タイプ、幅、高さなど、画像の最も一般的な属性とプロパティを報告するために使用されます。
\ | バックスラッシュ、次の文字はリテラルであり、解釈されません。 |
\n | 改行 |
\r | 復帰 |
< | 小なり記号。 |
> | 大なり記号。 |
& | アンパサンド記号。 |
%% | パーセント記号。 |
%b | 読み込まれた画像のファイルサイズ(-precision 16 を使用して、結果をBで強制的に表示) |
%c | コメントメタデータプロパティ |
%d | パスのディレクトリコンポーネント |
%e | ファイル名の拡張子またはサフィックス |
%f | ファイル名(サフィックスを含む) |
%g | レイヤーキャンバスページジオメトリ("%Wx%H%X%Y"と同等) |
%h | 現在の画像の高さ(ピクセル単位) |
%i | 画像ファイル名(注:「info:」では出力ファイル名になります) |
%k | 計算済み:一意の色数 |
%l | ラベルメタデータプロパティ |
%m | 画像ファイル形式(ファイルマジック) |
%n | 現在の画像シーケンス内の画像数(フレームごとに1回報告) |
%o | 出力ファイル名(デリゲートに使用) |
%p | 現在の画像リスト内の画像のインデックス |
%q | 量子深度(コンパイル時の定数) |
%r | 画像クラスと色空間 |
%s | シーン番号(再割り当てされない限り、入力から) |
%t | ディレクトリまたは拡張子(サフィックス)のないファイル名 |
%u | 一意の一時ファイル名(デリゲートに使用) |
%w | 現在の幅(ピクセル単位) |
%x | X解像度(密度) |
%y | Y解像度(密度) |
%z | 画像深度(変更されない限り、読み込まれたまま、画像保存深度) |
%A | 画像の透過チャンネル。値には、Undefined(透過チャンネルなし)、Blend、Copy、またはUpdateが含まれます。 |
%B | 読み込まれた画像のファイルサイズ(バイト単位) |
%C | 画像圧縮タイプ |
%D | 画像GIF破棄方法 |
%G | 元の画像サイズ(%wx%h; サイズ変更前) |
%H | ページ(キャンバス)の高さ |
%M | Magickファイル名(元のファイル。読み込み時の変更を含む) |
%N | 現在の画像シーケンス内の画像数(画像シーケンスごとに1回報告) |
%O | ページ(キャンバス)のオフセット(= %X%Y) |
%P | ページ(キャンバス)のサイズ(= %Wx%H) |
%Q | 画像圧縮品質(0 = デフォルト) |
%S | ?? シーン ?? |
%T | 画像時間遅延(センチ秒単位) |
%U | 画像解像度単位 |
%W | ページ(キャンバス)の幅 |
%X | ページ(キャンバス)のXオフセット(符号を含む) |
%Y | ページ(キャンバス)のYオフセット(符号を含む) |
%Z | 一意のファイル名(デリゲートに使用) |
%@ | 計算済み:トリミング境界ボックス(実際にトリミングせずに) |
%# | 計算済み:画像値の「シグネチャ」ハッシュ |
ファイル名がbird.miffで、幅が512、高さが480の画像のサンプルコマンドとその出力を示します。
-> identify -format "%m:%f %wx%h" bird.miff MIFF:bird.miff 512x480
すべての1文字パーセントエスケープは、長形式でも使用できます(IMバージョン6.7.6-9以降、次を参照)。例えば%[f]は%fの短形式と同等です。
警告:パーセントが数値の後に続く場合、短形式のパーセントエスケープは実行されません。例えば、10%x10は%xをパーセントエスケープとして展開しません。『x』を具体的に展開したい場合は、この特殊なケースをオーバーライドする長形式を使用します。例:10%[x]10。
また、計算された属性の生成には時間がかかる場合があり、特に大きな画像では時間がかかります。
長形式属性のパーセントエスケープ
上記の特定の属性と計算された属性に加えて、中括弧で囲まれた属性(長形式)も認識されます。
%[basename] | 基本ファイル名、サフィックスなし(%tと同じ) |
%[bit-depth] | ピクセルデータの実際のビット深度 |
%[bounding-box] | 画像境界ボックスの左上隅と右下隅 |
%[caption] | キャプションメタデータプロパティ |
%[caption:lines] | キャプションを折り返したときに生成された行数を返します。 |
%[caption:pointsize] | caption:処理中に計算されたポイントサイズを返します。 |
%[channels] | 色空間ニーモニックの後に、チャネルの総数とメタチャネルの数が続きます。例:cmyka 8.3 は、合計8チャネルと3メタチャネルを持つアルファチャネル付きのCMYK画像を示します。 |
%[colors] | 画像内の一意の色数(IM 7.0.3.8以降) |
%[colorspace] | 画像データの色空間(透過を除く) |
%[compose] | |
%[compression] | 画像圧縮タイプ |
%[convex-hull] | 前景オブジェクトの周囲の凸状ハウルを形成する点。-define convex-hull:background-color=colorを使用して、画像の背景色を特定します。-fuzzを使用して、均一でない背景色を許可します。 |
%[convex-hull:extreme-points] | 凸状ハウルの上端、右端、下端、左端の極端な点を返します。 |
%[copyright] | ImageMagick著作権文字列 |
%[depth] | 書き込み用の画像深度(変更されない限り、入力として) |
%[deskew:angle] | 回転の角度(度単位) |
%[directory] | ファイル名のディレクトリ部分(%dと同じ) |
%[distortion] | 画像が参照画像に似ている程度(-compare) |
%[dominant-color] | 支配的な画像の色を16進数で返します。-kmeansの前に使用します。 |
%[entropy] | 計算済み:画像のエントロピー |
%[extension] | ファイル名の拡張子部分(%eと同じ) |
%[gamma] | 画像ガンマの値 |
%[group] | ??? ウィンドウグループ ??? |
%[height] | 画像の元の高さ(読み込まれたとき) |
%[histogram:contrast-stretch] | 計算された最小および最大コントラストストレッチパーセンテージ |
%[histogram:linear-stretch] | 計算された最小および最大線形ストレッチパーセンテージ |
%[input] | |
%[interlace] | 画像インターレースモード(IM 7.0.3.8以降) |
%[kurtosis] | 計算済み:画像の尖度統計量 |
%[label] | ラベルメタデータプロパティ |
%[label:pointsize] | label:処理中に計算されたポイントサイズを返します。 |
%[magick] | 画像の読み込みに使用されたコーダー(ファイルサフィックスではない) |
%[max] | 計算済み:画像の最大値統計量 |
%[mean] | 計算済み:画像の平均値統計量 |
%[median] | 計算済み:画像の中央値統計量 |
%[min] | 計算済み:画像の最小値統計量 |
%[minimum-bounding-box] | -define convex-hull:background-color=colorを使用して、画像の背景色を特定します。-fuzzを使用して、均一でない背景色を許可します。境界ボックスの点に加えて、次のプロパティが設定されます。minimum-bounding-box:area、minimum-bounding-box:width、minimum-bounding-box:height、minimum-bounding-box:angle、およびminimum-bounding-box:unrotate。 |
%[opaque] | 計算済み:画像が完全に不透明か? |
%[orientation] | 画像の向き |
%[page] | 仮想キャンバス(ページ)ジオメトリ |
%[papersize:name] | 72DPIでのnameの用紙サイズ(ピクセル単位)(例:papersize:A4) |
%[printsize.x] | X印刷サイズ |
%[printsize.y] | Y印刷サイズ |
%[profile:icc] | ICCプロファイル情報 |
%[profile:icm] | ICMプロファイル情報 |
%[profiles] | 埋め込まれたプロファイルのリスト |
%[quality] | 画像品質値(IM 7.0.3.8以降) |
%[rendering-intent] | 画像レンダリングインテント(IM 7.0.3.8以降) |
%[resolution.x] | X密度(解像度)(単位なし) |
%[resolution.y] | Y密度(解像度)(単位なし) |
%[scene] | 入力ファイル内の画像の元のシーン番号 |
%[size] | 画像の元のサイズ(読み込まれたとき) |
%[skewness] | 計算済み:画像の歪度統計量 |
%[standard-deviation] | 計算済み:画像の標準偏差統計量 |
%[type] | 計算済み:画像タイプ |
%[unique] | 一意の一時ファイル名 ??? |
%[units] | 画像解像度単位 |
%[version] | この実行中のImageMagickのバージョン情報 |
%[width] | 画像の元の幅(読み込まれたとき) |
%[zero] | ゼロ(デリゲート使用のためのユニークなファイル名) |
プロパティ
パーセントエスケープの長形式のその他(1文字の長形式ではない)は、大文字と小文字が区別されません。そのようなエスケープは、その名前の特定のデータソースを検索しようとします。
主要な検索空間(上記の特定の属性でない場合)は、自由形式のプロパティ文字列です。このような文字列は画像に関連付けられ、保存され、通常は-set CLIオプション(またはAPI相当)または特別な便利オプション(-label、-comment、-captionなど)を使用して設定されます。
これらの利便性オプションはグローバルに保存され('グローバルオプション'として)、画像の読み込み前に設定できます。そして、画像が読み込まれた際にのみ、個々の画像のプロパティに転送されます。その時点で、存在する内部のパーセントエスケープが処理されます。
メモリに既に存在する画像のプロパティを変更するには、-setを使用する必要があります。
属性(およびプロファイル)のようなプロパティは、画像ファイル形式が許可している場合、書き込み時に画像と共に保存されることに注意してください。
アーティファクトとオプション
以前のパーセントエスケープは、主要な属性とプロパティに関連付けられています。これは、そのようなパーセントエスケープの元の主要な焦点です。
しかし、さまざまなImageMagickオペレーターによって使用される多くの操作設定があり、設定して後でアクセスすると便利です。これらは、画像ごとのアーティファクトとグローバルオプション(通常は現在の画像リストに関連付けられた画像のリストに関連付けられている)で構成されています。
アーティファクトとプロパティの主な違いは、アーティファクトは内部の操作設定であるため、画像と共に保存されないことです(可能であれば)。
たとえば、-define 'distort:viewport=100x100'を使用すると、実際にはグローバルオプションが生成され、-distortオペレーターはその動作(歪んだ出力画像の'ビュー')を変更するために使用します。
オプションは基本的に、画像のリスト(具体的には画像の'Wand')の一部としてグローバルに保存されているアーティファクトです。そのため、オプションは単に関連するすべての画像のグローバルアーティファクトであるため、それらは同一です。
そのため、-set 'option:distort:viewport' '100x100'を使用して、distort操作で使用するためのアーティファクトを設定するのと同じ結果を得ることができます。
グローバルオプションの内部処理...
コアライブラリ('MagickCore')は、一般的にグローバルオプションを直接理解しません。前の例を続けると、DistortImages()関数は、'viewport'が提供されているかどうかを確認するためにアーティファクトのみを検索します。
ライブラリ関数がアーティファクトを要求したときにグローバルオプションがどのように使用されるかは、IMv6とIMv7の主な違いの1つです。
グローバルオプションデータへのリンクを設定します。これにより、特定の画像ごとのアーティファクトが見つからない場合、その画像リストの同等のグローバルオプションを直接検索します。これにより、これらの自由形式のオプションを繰り返しアーティファクトにコピーする必要がなくなり、リストにグローバルオプションを個別に定義し、そのリスト内の特定の画像に個別のオーバーライドアーティファクトを定義できるようになります。
Wandを使用しない多くのAPI(たとえば、Wandではなく画像の配列を使用するPerlMagick)があることに注意してください。これらのAPIでは、グローバルオプションはなく、画像ごとのアーティファクトのみが存在します。
要約すると、グローバルオプションは使用可能な場合、画像ごとのアーティファクトと同等です。
プロパティ、アーティファクト、オプションのGlobパターンリスト
settingにはglobパターンを含めることができます。そのため、…を使用して、すべての自由形式の文字列プロパティ、アーティファクト、オプション(特定の画像属性を除く)をリストできるようになりました。
magick ... \ -print "__Properties__\n%[*]" \ -print "__Artifacts__\n%[artifact:*]" \ -print "__Options__\n%[option:*]" \ ...
globパターンの形式は非常に具体的であるため、一般的には画像処理に使用されるのではなく、デバッグ時など、特定の設定をリストするためにのみ使用されます。
計算されたパーセントエスケーププレフィックス
最初の':'の前にある特殊なプレフィックスがあり、ユーザーが提供した文字列に基づいて計算を実行します。たとえば、数値計算を実行するには、%[fx:...]を使用して、指定されたFX式を評価します。
%[fx:expression]
FX式で定義されているピクセルカラーを評価するには、pixel:またはhex:を使用します。
%[pixel:expression]
カラーコンプライアンスを指定するには-defineを使用します(例:-define pixel:compliance=css)。
.特定のプロファイルパーセントエスケーププレフィックス
次の特別なフォーマット構文を使用して、読み込まれた画像に含まれているEXIF画像メタデータを出力することもできます。
%[EXIF:tag]
tagを次のものから選択します。
* (print all EXIF tags, in keyword=data format) ! (print all EXIF tags, in tag_number data format) #hhhh (print data for EXIF tag #hhhh) ImageWidth ImageLength BitsPerSample Compression PhotometricInterpretation FillOrder DocumentName ImageDescription Make Model StripOffsets Orientation SamplesPerPixel RowsPerStrip StripByteCounts XResolution YResolution PlanarConfiguration ResolutionUnit TransferFunction Software DateTime Artist WhitePoint PrimaryChromaticities TransferRange JPEGProc JPEGInterchangeFormat JPEGInterchangeFormatLength YCbCrCoefficients YCbCrSubSampling YCbCrPositioning ReferenceBlackWhite CFARepeatPatternDim CFAPattern BatteryLevel Copyright ExposureTime FNumber IPTC/NAA EXIFOffset InterColorProfile ExposureProgram SpectralSensitivity GPSInfo ISOSpeedRatings OECF EXIFVersion DateTimeOriginal DateTimeDigitized ComponentsConfiguration CompressedBitsPerPixel ShutterSpeedValue ApertureValue BrightnessValue ExposureBiasValue MaxApertureValue SubjectDistance MeteringMode LightSource Flash FocalLength MakerNote UserComment SubSecTime SubSecTimeOriginal SubSecTimeDigitized FlashPixVersion ColorSpace EXIFImageWidth EXIFImageLength InteroperabilityOffset FlashEnergy SpatialFrequencyResponse FocalPlaneXResolution FocalPlaneYResolution FocalPlaneResolutionUnit SubjectLocation ExposureIndex SensingMethod FileSource SceneType
シェルがスペースと角括弧を誤って解釈するのを防ぐために、フォーマット指定を引用符で囲みます。
次の特別なフォーマット構文を使用して、ファイルに含まれているIPTC情報を出力できます。
%[IPTC:dataset:record]
datasetとrecordを次のものから選択します。
Envelope Record 1:00 Model Version 1:05 Destination 1:20 File Format 1:22 File Format Version 1:30 Service Identifier 1:40 Envelope Number 1:50 Product ID 1:60 Envelope Priority 1:70 Date Sent 1:80 Time Sent 1:90 Coded Character Set 1:100 UNO (Unique Name of Object) 1:120 ARM Identifier 1:122 ARM Version Application Record 2:00 Record Version 2:03 Object Type Reference 2:05 Object Name (Title) 2:07 Edit Status 2:08 Editorial Update 2:10 Urgency 2:12 Subject Reference 2:15 Category 2:20 Supplemental Category 2:22 Fixture Identifier 2:25 Keywords 2:26 Content Location Code 2:27 Content Location Name 2:30 Release Date 2:35 Release Time 2:37 Expiration Date 2:38 Expiration Time 2:40 Special Instructions 2:42 Action Advised 2:45 Reference Service 2:47 Reference Date 2:50 Reference Number 2:55 Date Created 2:60 Time Created 2:62 Digital Creation Date 2:63 Digital Creation Time 2:65 Originating Program 2:70 Program Version 2:75 Object Cycle 2:80 By-Line (Author) 2:85 By-Line Title (Author Position) [Not used in Photoshop 7] 2:90 City 2:92 Sub-Location 2:95 Province/State 2:100 Country/Primary Location Code 2:101 Country/Primary Location Name 2:103 Original Transmission Reference 2:105 Headline 2:110 Credit 2:115 Source 2:116 Copyright Notice 2:118 Contact 2:120 Caption/Abstract 2:122 Caption Writer/Editor 2:125 Rasterized Caption 2:130 Image Type 2:131 Image Orientation 2:135 Language Identifier 2:150 Audio Type 2:151 Audio Sampling Rate 2:152 Audio Sampling Resolution 2:153 Audio Duration 2:154 Audio Outcue 2:200 ObjectData Preview File Format 2:201 ObjectData Preview File Format Version 2:202 ObjectData Preview Data Pre-ObjectData Descriptor Record 7:10 Size Mode 7:20 Max Subfile Size 7:90 ObjectData Size Announced 7:95 Maximum ObjectData Size ObjectData Record 8:10 Subfile Post ObjectData Descriptor Record 9:10 Confirmed ObjectData Size