PerfectVector
著者: Irene Kim

EPSのバウンディングボックス:図案の欠けや余分な余白を直す方法

EPSの宣言された範囲と実際の描画を比べ、図案の欠けや大きすぎる余白を診断します。書き出し直し、実際の受け取り先で結果を確認します。

2 分で読める
目次

EPSでロゴの一部が欠けたり、余分な空間が大きく付いたりする場合は、宣言されたバウンディングボックスと、実際に描かれる図案を比較します。小さすぎるボックスを使う受け取り先では、存在する描画が切られる場合があります。大きすぎるボックスは不要な余白を残します。通常は、編集可能なマスターから書き出し直すのが最も分かりやすい修正です。宣言を広げても、保存されていない図案や、クリッピングパスで除外されたままの図案は復元できません。

元のEPS、完全な見た目の参照、受け取るアプリの要件を用意します。元ファイルを残し、別名の修正版を試して、実際の納品データを比較できるようにします。

4つの座標を正しく読む

EPSのバウンディングボックスは、描画されたマークを囲む長方形です。次のヘッダーでは、

%%BoundingBox: 20 15 101 66

20 15が左下、101 66が右上です。幅は101 − 20 = 81ポイント、高さは66 − 15 = 51ポイントです。最後の2数値は幅と高さではなく、座標です。左下がゼロ以外でも有効です。

AdobeのEPSF 3.0仕様は、線の広がりや接合部も含む描画範囲を囲むボックスを定義しています。そのため、パスの中心線だけでは必要な範囲を小さく見積もる場合があります。AdobeのDSC 3.0仕様では、%%BoundingBoxの引数は整数です。

葉の図案に、先端が収まらない狭い金色の枠と、余分な空間を含む大きな青緑の枠を重ねた概念図
図案と宣言された枠は別のものだと示す概念図です。

症状に応じて次の確認を選ぶ

症状考えられる原因役立つ確認
鋭い長方形の端でマークが切れる宣言された切り抜きや、受け取り先の枠が小さすぎる宣言、保存された描画範囲、受け取り先の切り抜き設定を比較する
完全なマークの周囲に大きな余白がある宣言範囲が大きすぎる、または余分な描画がある元データ全体と、実際の配置長方形を調べる
それ以外は正しい端で、線が削られる範囲に描画線の広がりが含まれていない可能性元アプリで完全な見た目から再計算する
サムネイルと配置結果が違うプレビューと描画内容が別の表現である可能性新たに描画した結果と実際の使用先の結果を比較する
宣言を広げても図案が欠ける描画データの欠落、または適用されたクリッピングパス完全な編集可能マスターに戻り、図そのものを調べる

白い余白には、別途背景の確認も必要です。周囲の空白、実際の白いオブジェクト、ラスター化された内容の可能性があります。EPSの背景の診断でこの違いを扱っています。範囲を変えるだけでは、透明かどうかは分かりません。

同じ描画で、バウンディング宣言だけが違う4ファイル

青緑の長方形、白い円形の細部を持つ濃色の三角形、右端近くのオレンジの帯という、バイト単位で同じ描画プログラムを持つEPSを4つ作りました。保存された描画命令を開き直すと、どのファイルも描画の外側範囲は同じでした。

lower-left:  (20.25, 15.5)
upper-right: (100.75, 65.25)

変えたのはバウンディングのコメントだけです。4つのヘッダーはすべてPostScript LanguageLevel 2を宣言しています。実際に保存したファイルをGhostscript 10.08.0で、png16m、-dEPSCrop、288 dpiを使って描画し、この検証では1ポイント当たり4ピクセルとしました。

宣言実際のPNG寸法観察した結果
%%BoundingBox: 20 15 101 66324 × 204完全なマークと、整数への丸めによる小さな余白
%%BoundingBox: 20 15 60 66160 × 204三角形の右側が切れ、オレンジの帯は描画範囲外
%%BoundingBox: 0 0 120 80480 × 320完全なマークと、大きな白い余白
同じ整数の包含ボックスと小数のHiRes範囲322 × 199このレンダラーでは、整数への丸めによる余白なしで完全なマーク

最後の行では、次のコメントを追加しました。

%%HiResBoundingBox: 20.25 15.5 100.75 65.25

ここでHiResBoundingBoxは小数の範囲を示します。このGhostscript実行では、観察した切り抜きはその値に従いました。すべてのEPS読み込み機能が同じ優先度で扱うという保証ではありません。この拡張をDSC 3.0仕様の定義とはしていません。

324 × 204と322 × 199の出力は、図案の倍率が違うのではなく、切り抜き寸法が異なります。宣言した81 × 51ポイントの整数長方形が、80.5 × 49.75ポイントの描画長方形を囲んでいます。この制御されたファイルでは、丸めによる余白は想定どおりです。

ピクセル検査では、完全な描画にオレンジの帯があり、小さすぎる描画では既知の位置が範囲外にあることを確認しました。EPS切り抜きを使わない別のGhostscriptのbbox処理でも、4ファイルで同じ描画範囲が報告され、保存された包含長方形と一致しました。これにより、この例では保存された描画命令は存在したまま、切り抜き描画で見えなくなったと確認できます。

小さすぎる宣言と大きすぎる宣言は、意図して誤らせた対照例です。この検証は1つのレンダラーと単純な塗り形状を試したものです。アプリへの読み込み、EPSプレビュー、実物印刷、PerfectVectorの変換結果を示唆するものではありません。

診断し、修正して、代替ファイルを検証する

1. 宣言と図を分ける

完全な参照と、ファイルの実際の描画内容を比較します。テキスト形式のEPSヘッダーを調べられるなら、両方の範囲宣言がある場合は両方を読みます。任意のファイルの座標数値を検索するだけで描画範囲が測れると考えないでください。実際のPostScriptは、変換、手続き、文字、画像、クリッピングを使う場合があります。

Ghostscriptを導入済みなら、技術的な描画確認として、試験したコマンド形式は次のとおりです。

gs -dSAFER -dBATCH -dNOPAUSE \
  -sDEVICE=png16m -r288 -dEPSCrop \
  -sOutputFile=eps-check.png artwork.eps

これは確認用PNGを書き出し、EPSを修正したり置き換えたりはしません。Ghostscriptの使用説明では、-dEPSCropはEPSをバウンディングボックスで切り抜くとしています。

別途描画範囲を測る必要がある場合は、その切り抜き描画と区別します。bboxデバイスの説明では、結果がラスター解像度と丸めに依存し、既定では白いオブジェクトを除外するとしています。そのため、測った非白色範囲が、自動的に生産用の完全なバウンディングボックスになるわけではありません。意図的な白い図案では特に注意が必要です。

2. 編集可能なマスターで原因を修正する

既存の図案が範囲から外れているなら、必要な完全な図案を包含するボックスで書き出し直します。見える線の広がりも含めます。余白が大きすぎる場合は、書き出し領域を変える前に、不要なオブジェクトや意図して描いたオブジェクトが実際の内容を広げていないか調べます。

元アプリの文書化されたEPS保存設定を使い、対象のアートボードや範囲を確認します。AdobeのIllustrator保存ガイドは、EPS保存、アートボード選択、独立したプレビュー画像設定を説明しています。これらは文書化された設定です。この検証ではIllustratorでの書き出しや、その読み込み挙動の確認は行っていません。

欠けた内容が保存された図にない、またはクリッピングパスで除外されている場合は、元の問題を直して再出力します。コメントを変えても、欠けたパス命令や異なるクリッピング処理は加わりません。マスターがない場合は、広げただけの空の枠を受け入れず、完全な元データか修正版の書き出しを依頼します。

3. 受け取り側が使う正確なファイルを確認する

修正版を描画し、シルエット全体、細い線の端、内部の白い細部、意図した余白を参照と比較します。座標差から寸法を確認します。次に、その同じ修正版を実際の受け取り先で配置または読み込み、切り抜きと倍率を調べます。

描画は完全なのに配置で欠ける場合は、使用先の枠、読み込み設定、ファイル処理を調べます。両方で不完全な場合は、元の内容とクリッピングに戻ります。内容と受け取り先の結果の両方が要件を満たすまで、修正版を別に保ちます。

範囲の確認が成功しても、ファイルが編集可能なパスか埋め込みビットマップかは分かりません。それにはEPSの構造確認ガイドを使います。SVGのバウンディングボックスは異なる仕組みであり、DOMの測定はEPSのコメントと描画の解釈の代わりにはなりません。

PerfectVectorを使った場合の流れ

完全なフラットなラスターのロゴしかなく、不透明なEPS背景が用途に合う場合は、PerfectVectorの画像からEPSへの変換で見える形状を再構築します。再構築したシルエット、文字、開口部を参照と比較してから、書き出したEPS全体と寸法を受け取り先で確認します。

現在の出力は、白または黒の不透明背景を持つ、フラットな塗りのパスです。新しい図案候補を準備するもので、任意のEPSヘッダーの修正、見えない欠落図案の復元、受け取り側の切り抜きの認証は行いません。編集可能なベクターマスターがあれば、そちらを修正して書き出し直します。

よくある質問

EPSのバウンディングボックスは、ゼロから始める必要がありますか?

いいえ。左下の座標はゼロ以外でも構いません。幅と高さは上側の座標から下側の座標を引いて求めます。この包含する整数ボックスは(20, 15)から始まり、描画命令を動かさずに81 × 51ポイントの長方形を表します。

BoundingBoxを広げると、欠けた図案が戻りますか?

描画が残っており、受け取り先がその宣言を使う場合は、見える領域が変わる可能性があります。欠けた描画命令の再作成や、クリッピングパスの解除はできません。完全なマスターから修正して書き出し直し、実際の使用先で確認してください。

HiResBoundingBoxなら、必ず余分な余白がなくなりますか?

ここでは共通の挙動は確認していません。制御された実行でGhostscript 10.08.0は小数の範囲に従い、整数の包含ボックスの324 × 204ピクセルではなく、322 × 199ピクセルを出力しました。実際の読み込み機能の挙動を確認し、有効な包含整数の宣言を残してください。

出典

  1. Adobe:EPSF 3.0仕様:線の広がりと接合部も含め、描画を囲む左下と右上の範囲を定義しています。
  2. Adobe:DSC 3.0仕様:BoundingBoxコメントの整数座標引数を定義しています。
  3. Ghostscript:EPSパラメーター:EPSCropと関連するEPS処理設定を説明しています。
  4. Ghostscript:バウンディングボックス出力:bbox測定、白いオブジェクトの扱い、解像度と丸めの制約を説明しています。
  5. Adobe:アートワークの保存:EPS書き出し、アートボード選択、独立したプレビュー画像設定を説明しています。

完全なラスターのロゴから始め、不透明背景でよい場合は、画像から候補EPSを作成し、パスを参照と比較してから、受け取り側の工程で書き出し図案全体、寸法、切り抜きを確認してください。

ブログのその他の記事

PerfectVector

画像ファイルを
編集可能なSVGに変換

クレジットカード不要