ImageMagickを使って出力できるpsd情報をまとめました。
目次
1. PSDとは
- 拡張子:
.psd
(標準) /.psb
(大型ドキュメント) - 特徴
- 画像+レイヤー構造、マスク、テキスト、スマートオブジェクトなどを保持
- ICCカラープロファイルやメタデータ(EXIF/XMP/IPTC)も埋め込み可能
- 8bit/16bit/32bit チャンネル深度に対応
- CMYK, RGB, Grayscale, Lab などのカラーモードに対応
- レイヤーコンプ(Layer Comps)による表示状態の保存も可能
2. ImageMagickでPSDを扱う際の基本
ImageMagickはPSDを読み込めますが、Photoshopと100%互換ではありません。
読み込むときの挙動はPSD内部の構造次第で変わります。
読み込みの挙動
- デフォルト: PSDの 全レイヤー/レイヤーコンプを個別画像として展開
- ファイル名末尾に
-0
,-1
,-2
… と連番が付く
- ファイル名末尾に
"[0]"
を付ける: 最初の画像(統合ビュー)だけ取得"[n]"
を付ける: n番目の画像(レイヤー)だけ取得-flatten
: 全レイヤーを合成して1枚の画像にする(透過は保持可)
3. ImageMagickでできること(PSD関連)
ImageMagickでPSDに関して、できることをまとめました
基本的な出力・変換
PNG/JPEG/TIFF/WebPなど主要フォーマットへの変換
magick file.psd[0] out.png
複数レイヤーを個別画像として一括出力
magick file.psd out.png
# out-0.png, out-1.png...
カラースペース変換(RGB ↔ CMYK など)
カラースペース変換(RGB ↔ CMYK など)
magick file.psd[0] -colorspace sRGB out.png
ICCプロファイル埋め込み/変換
magick file.psd[0] -profile sRGB.icc out.png
チャンネル分離(R/G/B/Aなど)
magick file.psd[0] -channel R -separate r.png
透過処理
アルファ保持(-alpha on)
背景合成(白背景に置き換え)
magick file.psd[0] -background white -alpha remove out.jpg
情報抽出
基本情報(幅/高さ/色数など)
magick file.psd[0] -background white -alpha remove out.jpg
詳細情報(メタデータ、ICC、チャンネルなど)
magick identify -verbose file.psd
レイヤー数やカンプ数も、この -verbose
出力から確認可能
4. 出力できる情報例(magick identify -verbose file.psd)
- Format: PSD (Adobe Photoshop)
- Geometry: 3000×2000+0+0
- Colorspace: sRGB / CMYK / Gray
- Depth: 8-bit / 16-bit / 32-bit
- Layers:
- Layer 0: Background
- Layer 1: Text
- Layer 2: Shape
- Profiles:
- ICC profile
- XMP data
- IPTC data
- Compression: RLE / ZIP / None
- Alpha channels: Yes / No
- Resolution: DPI / PPI
5. 制限・注意点
- 完全互換ではない
- 調整レイヤー(Adjustment Layers)、スマートオブジェクトの非破壊編集情報は再現不可
- レイヤースタイル(シャドウ、光彩など)は適用済み状態で読み込まれることが多い
- フィルタスマートオブジェクト内の構造は展開不可
- レイヤーカンプの「名前」や切替状態」は取得できない
- PSD内のレイヤーカンプ定義自体は読み込まれず、単純に全レイヤーを別画像として返す
- テキストレイヤーはベクトルとしては保持されず、ラスタライズされる
- 巨大ファイル(PSB)対応はビルド設定次第
6. 実務での使い分け
- 単に統合画像がほしい →
[0]
指定でOK(レイヤーもカンプも展開されない) - 各レイヤー画像がほしい →
[n]
やデフォルト出力で全展開 - レイヤーカンプ単位で書き出したい → Photoshopスクリプト(ImageMagickでは不可)
- メタ情報解析だけしたい →
identify -verbose