Amazonで商品を見るセール会場へ

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と完全な互換性があるわけではありません。

読み込み時の挙動は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] 指定で取得可能(個別レイヤーを展開しない)
  • 個別レイヤーを抽出したい場合[n] 指定やオプションなしで全展開
  • レイヤーカンプ単位で書き出したい場合 → Photoshopスクリプトで処理(ImageMagick単体では非対応)
  • メタデータの解析のみ行いたい場合identify -verbose

Photoshopの他の操作手順は、まとめ記事をご覧ください。

読み込みと書き出しの記事は、ほかにもあります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

Photoshop用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次