ImageMagick 7でPSDの保存済み統合画像や、読み取れるレイヤー画像を取り出す方法です。コマンド例はPSDを置いたフォルダーで実行し、出力名は既存ファイルと重ならない名前に変更してください。大量処理の前に1件変換し、Photoshopでの表示と寸法・色・透明度を比較します。
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]"を指定: 最初の画像(保存済み統合画像)のみ取得。保存時の互換性設定やPSDの状態に左右されるため、出力を確認します。"[n]"を指定: 読み込んだ画像列のn番目を取得。Photoshopのレイヤーパネルの行番号と同一とは限りません。-flatten: 読み込んだ画像列を再合成。保存済み統合画像の抽出とは別の処理で、Photoshopの見た目を再現する保証はありません。透明背景の指定も必要です。
3. ImageMagickでできること(PSD関連)
ImageMagickを使ったPSDの主な処理内容をまとめました。
基本的な出力・変換
PNG、JPEG、TIFF、WebPなど主要フォーマットへの変換
magick "file.psd[0]" out.png1つのPSDから読み取れる画像を連番PNGとして出力(先頭には統合画像も含まれます)
magick file.psd out.png
# out-0.png, out-1.png...カラースペース変換(RGB ↔ CMYK など)
sRGBへの色空間変換の例です。-colorspaceは、元のICCプロファイルを指定したプロファイル変換と同じ処理ではありません。
magick "file.psd[0]" -colorspace sRGB out.pngICCプロファイルの例です。sRGB.iccは実在するプロファイルファイルのパスに置き換えます。入力にICCプロファイルがある場合は変換し、ない場合は指定プロファイルの関連付けになります。元の色空間が不明な画像にsRGBを付けても、正しい色への変換にはなりません。
magick "file.psd[0]" -profile sRGB.icc out.pngチャンネル分離(R/G/B/Aなど)
magick "file.psd[0]" -channel R -separate r.png透過処理
PNGは透明度を保持できます。ただし-alpha onはアルファチャンネルを有効にする指定で、失われた透明部分を復元するものではありません。
背景合成(白背景などへの置き換え)
magick "file.psd[0]" -background white -alpha remove out.jpg情報抽出
基本情報(幅、高さ、色数など)の取得
magick identify "file.psd[0]"詳細情報(メタデータ、ICCプロファイル、チャンネルなど)の取得
magick identify -verbose file.psd画像列の情報を確認できますが、出力された画像数をPhotoshopのレイヤー数やレイヤーカンプ数として数えないでください。項目や取得できるメタデータはファイルとバージョンにより異なります。
4. 詳細出力で確認する項目(実行結果の例ではありません)
- Format: PSD (Adobe Photoshop)
- Geometry: 3000×2000+0+0
- Colorspace: sRGB / CMYK / Gray
- Depth: 8-bit / 16-bit / 32-bit
- 画像列について確認する点:
- 先頭の統合画像と個別画像の区別
- 各画像の寸法・オフセット
- Photoshopのレイヤー構造を完全に復元する一覧ではないこと
- Profiles:
- ICC profile
- XMP data
- IPTC data
- Compression: RLE / ZIP / None
- Alpha channels: Yes / No
- Resolution: DPI / PPI
5. 制限・注意点
- 完全な互換性はない
- PNGへ変換しても調整レイヤーやスマートオブジェクトの編集機能は引き継がれません。効果を含む見た目は元PSDと照合してください。
- レイヤースタイル(シャドウ、光彩など)はラスタライズ済み状態で読み込まれる場合がある
- スマートフィルター適用レイヤーの内部構造は展開不可
- ここに掲載したコマンドではレイヤーカンプを切り替えて書き出せません
- 画像列の読み込みとレイヤーカンプの適用は別です。カンプごとの出力にはPhotoshop側でカンプを適用して書き出す処理を使います。
- テキストレイヤーはベクターとして保持されず、ラスタライズされる
- PSBは公式の対応形式に含まれます。実際に使う環境では
magick identify -list formatで対応を確認し、メモリ・ディスク容量・リソース制限にも注意してください。
6. 実務での使い分け
- 統合画像のみ抽出したい場合 →
"file.psd[0]"で先頭画像を選択。角括弧をシェルが解釈しないよう、ファイル名全体を引用符で囲みます。 - 個別レイヤーを抽出したい場合 → まず画像列を確認してから
[n]で対象を選択 - レイヤーカンプ単位で書き出したい場合 → Photoshopスクリプトで処理(ImageMagick単体では非対応)
- メタデータの解析のみ行いたい場合 →
identify -verbose
参照:ImageMagick対応形式、コマンドオプション、identifyの使い方。この記事のコマンドを使う環境での実行結果は、変換した画像を開いて確かめてください。
Photoshopの他の操作手順は、まとめ記事をご覧ください。

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




よくある質問:ImageMagickでPSDから画像やメタデータを取り出す
ImageMagickでPSDを扱えますか?
ImageMagickはPSDの読み込みに対応していますが、Photoshopと完全な互換性があるわけではありません。読み込み時の挙動は、PSD内部の構造によって変化します。
PSDを読み込むと、どのように展開されますか?
統合画像と読み取れるレイヤー画像の列として扱います。レイヤーカンプごとの画像ではありません。画像列の再合成と、保存済み統合画像の取得も異なります。
統合画像だけを取り出すにはどうしますか?
magick "file.psd[0]" out.pngで先頭画像を選択します。PSDの保存状態によって結果が変わるため、Photoshopの表示と出力を比較してください。
ImageMagickでどんな処理ができますか?
PNG、JPEG、TIFF、WebPなど主要フォーマットへの変換、1つのPSDから読み取れる画像を連番PNGとして出力(先頭には統合画像も含まれます)、RGB↔CMYKなどのカラースペース変換、ICCプロファイルの埋め込み・変換、チャンネル分離(R/G/B/Aなど)、アルファチャンネルの保持などの透過処理、情報抽出ができます。
PSDのメタデータや情報は取り出せますか?
magick identify -verbose file.psdで詳細を確認できます。保存されていない情報は取得できず、出力形式や項目も異なります。画像数をレイヤーカンプ数と解釈しないでください。
ImageMagickで再現できないものはありますか?
PNG出力は画素画像で、編集可能なテキストや調整レイヤー、スマートオブジェクトを引き継ぎません。効果や色・透明度の見た目が保たれたかは、実ファイルで確認します。
レイヤーカンプ単位で書き出せますか?
ここで示すコマンドはレイヤーカンプを切り替える処理ではありません。カンプごとの画像が必要な場合は、Photoshopで各カンプを適用して書き出します。
大容量のPSB(大型ドキュメント)も扱えますか?
公式の対応形式にはPSBが含まれます。利用環境の対応形式とリソース制限を確認してください。形式に対応していても、巨大なファイルが手元のメモリやディスク容量で処理できるとは限りません。
