Photoshop│PSDをImageMagickで出力するまとめ

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
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

目次