結論

PSDファイルは、Adobe Photoshop の保存形式(拡張子 .psd)で、レイヤーごとの画像と、全部を重ねた「合成画像」を1つのファイルに持っています。Photoshop がなくても、無料の GIMP、Mac のプレビュー、ブラウザで動く Photopea、コマンドの ImageMagick や Python の psd-tools で開き、PNG・JPG に変換できます。

この記事でわかること

  • Windows・Mac・スマホ・Linux 別の、Photoshop なしで PSD を開く・PNG/JPG にするいちばん早い方法
  • 自作の PSD を GIMP・psd-tools・ImageMagick で開き、レイヤー・描画モード・日本語名の残り方と変換時間・容量を比べた結果
  • 開けない・真っ白になる・色が薄くなる・レイヤー名が化ける原因を、エラー原文と「症状→原因→直し方」の表で

2026年10月29日更新|GIMP 2.10.36・psd-tools 1.26.0・ImageMagick 6.9.12 で実行確認

PSD を受け取ったときに迷うのは、「何をしたいか」で選ぶ道具が変わるからです。見るだけなのか、PNG・JPG にしたいのか、レイヤーを直したいのかを先に決めると、最短の方法が決まります。

flowchart LR
    A[PSD] --> C[見るだけ<br>プレビュー<br>Photopea]
    A --> D[PNG・JPGに<br>GIMP<br>ImageMagick]
    A --> E[編集する<br>GIMP<br>Krita]
    A --> F[大量に変換<br>ImageMagick<br>psd-tools]
    E -.-> G[文字・効果<br>Photoshop]

やりたいことごとの、いちばん早い方法を先にまとめます。

やりたいこと いちばん早い方法 詳しい節
PSDファイルとは何か知りたい Photoshop の保存形式。レイヤーと合成画像を1つに持つ PSDファイルとは
Windows で PSD を開きたい(無料) GIMP をインストールして開く。ブラウザなら Photopea PSDファイルの開き方(OS別)
Mac で PSD を開きたい プレビューで開く(見るだけ)。編集は GIMP など PSDファイルの開き方(OS別)
スマホで PSD を開きたい Adobe は Photoshop Express アプリを案内している PSDファイルの開き方(OS別)
PSD を PNG・JPG に変換したい Mac はプレビューの書き出し。コマンドなら convert 'in.psd[0]' out.png ImageMagickでPSDをPNG・JPGに変換する
レイヤーを1枚ずつ PNG にしたい psd-tools の layer.composite() か ImageMagick Python(psd-tools)でPSDを開く
PSD が開けない・真っ白になる 中身が PSB・壊れている・合成画像が無い、のどれかを確かめる PSDが開けないときの原因と直し方
開いたら色が薄い・レイヤーが崩れる CMYK・文字レイヤー・効果は別のアプリで完全には再現できない レイヤーが崩れる・色が変わる原因
PSD を何百個もまとめて変換したい Python のスクリプトでフォルダーごと変換 大量のPSDをまとめてPNGに変換する

確認環境:Ubuntu 24.04.5 LTS の作業用フォルダーで、Python 3.13.18 の仮想環境に入れた psd-tools 1.26.0(Pillow 13.0.0・NumPy 2.5.4)で、800×500ピクセル・7レイヤー(グループ・乗算60%・非表示・日本語のレイヤー名を含む)の見本の PSD を自作しました。人から受け取ったデータは使っていません。この PSD を、Ubuntu のパッケージを作業用フォルダーに展開した GIMP 2.10.36(gimp-console のバッチ処理。設定フォルダーも作業用フォルダーの中)、ImageMagick 6.9.12-98、psd-tools の3つで開き、レイヤー一覧・書き出した PNG の画素の差・変換時間(5回の中央値)・容量を測りました。CMYK・16ビット・PSB・途中で切れたファイル・拡張子だけ .psd にした PNG も自分で作り、3つの道具のエラー原文を写しています。ファイルの種類は file 5.45 で確かめました。コマンドは環境変数を空にした状態(env -i、LANG=C.UTF-8)で動かしています。PSD の構造と大きさの上限は Adobe の「Photoshop File Formats Specification」と Adobe の PSD の解説ページ、GIMP の CMYK の扱いは GIMP 2.10.30 のリリースノート、Krita の対応範囲は Krita のドキュメント、Photopea は公式の学習ページ、Mac のプレビューの書き出しは Apple のサポートで確かめました。Windows・Mac・スマホの実機と Photoshop は動かしていないため、それらの手順は公式の説明の範囲だけを書いています。Photopea などのオンラインサービスには接続していません。図は mermaid 11.16.0 で描画を確かめています(確認日 2026年10月29日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「PSDファイルとは?Photoshopなしで開く方法・変換と開けない原因」

PSDファイルとは(Photoshopの保存形式・PNG/JPGとの違い)

この節では、PSDファイルが何を保存しているのかと、PNG・JPG との違いが分かります。

PSD(Photoshop Document)は、Adobe Photoshop が標準で使う保存形式です。Adobe の解説によると、Photoshop は1990年に発売され、PSD は複数のレイヤー・画像・オブジェクトを、多くの場合は高い解像度のまま保存できます。大きさの上限は、縦横それぞれ30,000ピクセル、ファイルの容量は2GBです。これを超える画像は、PSB(Photoshop Big、ラージドキュメント形式)で保存します。PSB は縦横300,000ピクセルまで扱えます。

PNG や JPG は「でき上がった1枚の絵」だけを持つ形式です。PSD は、背景・写真・文字・影などを別々の層(レイヤー)として持ち、それぞれの不透明度や描画モード(乗算・スクリーンなど、下の層との混ぜ方)も保存します。あとから文字だけ直す、影だけ消す、といった再編集ができるのはこのためです。

PSD(作業用のファイル)

レイヤー・グループ・描画モード・不透明度を持つ

あとから一部だけ直せる

容量が大きい。見本は 1.47MB

開けるアプリが限られる

PNG・JPG(でき上がりの画像)

重ねた結果の1枚だけを持つ

レイヤーは戻らない

容量が小さい。同じ絵の PNG は 23KB

ほぼすべての端末・ブラウザで開ける

Adobe は PSD の用途として、複数のレイヤーを重ねるデジタルデザインと、露出の補正・レタッチ・合成などの写真の加工を挙げています。良い点は、色や画質の情報を多く残したままレイヤーを個別に編集でき、Illustrator・Premiere・Adobe Express など Adobe の他のアプリに読み込めることです。弱い点は、PNG・JPG などに変換するとレイヤーが失われること、容量が大きく送りにくいこと、Creative Cloud が無いと Windows・macOS の標準の機能では十分に扱えないことです。

形式 レイヤー 主な用途 見本の容量(800×500)
PSD 持つ Photoshop での作業・受け渡し 1,469,094 バイト
PSB 持つ 30,000ピクセル・2GB を超える大きな作業 (同じ絵を1層で 89,608 バイト)
PNG 持たない Web・資料。文字や線がにじまない 23,632 バイト
JPG(品質90) 持たない 写真。容量を小さくしたいとき 47,627 バイト
XCF 持つ GIMP の作業用の形式 (GIMP で保存したとき)

見本の PSD が大きいのは、レイヤー6枚を全面の大きさで持ち、さらに合成画像を圧縮せずに入れているためです。中身の内訳は次の節で実際に読みます。なお、画像の形式そのものの選び方は、関連記事「WebP・HEICとは|JPG・PNGへの変換と画像圧縮を実測で解説」で扱っています。

PSDファイルの中身(8BPSのヘッダーと5つの区画)

この節では、PSD がどんな順番でデータを持っているかと、「開けない」「真っ白」の理由につながる合成画像の位置が分かります。

PSD はバイナリーのファイルで、先頭の4バイトは必ず「8BPS」です。Adobe が公開している仕様書(Photoshop File Formats Specification、2019年11月版)では、ファイルは次の5つの区画が順に並ぶと定められています。

  1. 1ファイルヘッダー(26バイト)署名 8BPS・版(PSD は1、PSB は2)・チャンネル数・高さ・幅・ビット深度・カラーモード
  2. 2カラーモードデータインデックスカラーとダブルトーンのときだけ中身がある。RGB では長さ0
  3. 3画像リソースパス・ガイド・解像度など、画素以外の情報
  4. 4レイヤーとマスクの情報レイヤーの名前・位置・描画モード・不透明度と、レイヤーごとの画素
  5. 5画像データ(合成画像)全レイヤーを重ねた完成形の1枚。多くのビューアーはここだけを読む

見本の PSD の先頭26バイトを od で表示すると、仕様書のとおりに並んでいました。

$ head -c 26 sample.psd | od -A d -t x1
0000000 38 42 50 53 00 01 00 00 00 00 00 00 00 03 00 00
0000016 01 f4 00 00 03 20 00 08 00 03
  • 38 42 50 53 は文字の「8BPS」、続く 00 01 が版1(PSD)です。PSB ならここが 00 02 になります。
  • 00 03 がチャンネル数3(RGB)、00 00 01 f4 が高さ500、00 00 03 20 が幅800、00 08 が8ビット、最後の 00 03 がカラーモード RGB(CMYK は4)です。

区画ごとの大きさを、長さの欄をたどる小さなスクリプトで数えました。

import struct, sys
b = open(sys.argv[1], 'rb').read()
ch, h, w, depth, mode = struct.unpack('>HIIHH', b[12:26])
print(f'署名={b[:4].decode()} 版={struct.unpack(">H", b[4:6])[0]} 高さ={h} 幅={w} 深さ={depth} モード={mode}')
o = 26
for name in ['カラーモードデータ', '画像リソース', 'レイヤーとマスク']:
    n = struct.unpack('>I', b[o:o+4])[0]
    print(f'{name}: {n:,} バイト'); o += 4 + n
print(f'合成画像: {len(b)-o:,} バイト')
署名=8BPS 版=1 チャンネル=3 高さ=500 幅=800 深さ=8 モード=3
カラーモードデータ: 0 バイト
画像リソース: 94 バイト
レイヤーとマスク: 268,960 バイト
合成画像(Image Data): 1,200,002 バイト  圧縮方式=0

1容量の8割は合成画像だった

見本 1.47MB のうち 1.2MB が、圧縮されていない合成画像。レイヤー6枚は圧縮されて 0.27MB だった。

2合成画像は「保険」の1枚

仕様書は、互換性を優先する設定(maximize compatibility)を外すと合成画像が作られず、読む側がレイヤーから組み立て直す必要があると書いている。

3ZIP にすると小さくなった

見本の PSD を Python の zipfile で圧縮すると 1,469,094 → 53,899 バイト。圧縮していない区画がある PSD は、送る前に ZIP にすると軽くなることがある。

「合成画像を読むか、レイヤーから組み立て直すか」は道具によって違います。この違いが、あとの節で出てくる「アプリによって見え方が違う」「真っ白に見える」の正体です。

PSDファイルの開き方(Windows・Mac・スマホ・Linux別)

この節では、Photoshop が無いときに、使っている端末ごとに PSD を開く・PNG/JPG にする方法が分かります。

見るだけなら Mac はプレビュー、Windows はブラウザの Photopea か GIMP がいちばん早い方法です。手元で動かせない端末の手順は、各社の公式の説明で確かめた範囲だけを書いています。

端末 見るだけ PNG・JPG にする レイヤーを直す
Windows 標準の機能では扱えない(Adobe)。GIMP・Photopea GIMP の「名前を付けてエクスポート」 GIMP・Krita・Photopea・Photoshop
Mac プレビューで開ける(編集は不可。Adobe) プレビューの「ファイル」→「書き出す」 GIMP・Krita・Photopea・Photoshop
iPhone・Android Photoshop Express アプリ(Adobe) アプリの機能の範囲 手軽な調整まで。本格的な編集は PC
Linux GIMP・Krita GIMP・ImageMagick・psd-tools GIMP・Krita
どの端末でも ブラウザで Photopea(公式は端末の中で処理すると説明) Photopea の書き出し Photopea

Windows で開く

Adobe の解説では、Windows では Illustrator や Premiere で閲覧はできるものの、編集には Photoshop が必要で、Creative Cloud が無い場合は Windows の標準の機能では扱えないとされています。Photoshop を持っていない場合は、無料の GIMP(Windows・macOS・Linux 向けに公式サイトで配布)をインストールして、「ファイル」→「開く」で PSD を選びます。インストールしたくない場合は、ブラウザで Photopea を開く方法があります。

Mac で開く(プレビューで PNG・JPG に書き出す)

Adobe の解説では、macOS ではプレビューで PSD を開いて表示できます(編集はできません)。PNG・JPG にしたいときは、Apple が案内しているファイルタイプの変換の手順をそのまま使います。

1

PSD をプレビューで開く

Finder で PSD を選び、プレビューで開く。レイヤーは表示されず、重ねた結果の1枚が見える。

Mac

2

「ファイル」→「書き出す」を選ぶ

Apple のサポートでは、ファイルを開いてから「ファイル」>「書き出す」と選ぶ手順が案内されている。

Mac

3

フォーマットを PNG か JPEG にする

「フォーマット」のメニューから HEIC・JPEG・JPEG-2000・OpenEXR・PDF・PNG・TIFF を選べる。透明を残すなら PNG、写真で軽くしたいなら JPEG。

Mac

4

保存して開き直す

書き出した画像を開き、文字や色が崩れていないかを確かめる。崩れていたら、PSD に合成画像が無いか CMYK の可能性がある(後の節)。

Mac

スマホ(iPhone・Android)で開く

Adobe のよくある質問では、Photoshop Express アプリがあれば iPhone や Android で PSD を開けると案内されています。スマホのアプリは手軽な調整が中心なので、レイヤーを直す作業は PC で行うほうが確実です。

Linux で開く

Linux では GIMP と Krita が PSD を開けます。この記事では GIMP 2.10.36 で実際に開いて確かめました(次の節)。コマンドで変換するなら ImageMagick、プログラムで扱うなら Python の psd-tools が使えます。

このほか、ペイント系のアプリにも PSD の読み書きに対応したものがあります。対応の範囲は製品と版ごとに変わるため、使う前に各公式の「対応ファイル形式」の一覧で確かめます。

GIMPでPSDを開く・PNGに書き出す(無料ソフト)

この節では、無料の GIMP で PSD を開いたときに、レイヤー・グループ・描画モード・不透明度・日本語のレイヤー名がどこまで残るかが分かります。

GIMP 2.10.36 は、見本の PSD のレイヤー7枚・グループ・乗算60%・非表示・日本語名をすべて読み取りました。画面の操作は「ファイル」→「開く」で PSD を選ぶだけです。手元では画面の代わりに、GIMP をバッチ処理(画面を出さずにスクリプトで動かす方法)で起動し、読み込んだレイヤーの一覧を出しました。

script-fu-Warning: size=800x500 base=0 precision=150
script-fu-Warning: 非表示メモ | mode=28 | opacity=100.0 | visible=0 | group=0
script-fu-Warning: 見出しグループ | mode=28 | opacity=100.0 | visible=1 | group=1
script-fu-Warning:   文字(画像化) | mode=28 | opacity=100.0 | visible=1 | group=0
script-fu-Warning:   太陽 | mode=28 | opacity=100.0 | visible=1 | group=0
script-fu-Warning: 帯(乗算60%) | mode=30 | opacity=60.0 | visible=1 | group=0
script-fu-Warning: 山 | mode=28 | opacity=100.0 | visible=1 | group=0
script-fu-Warning: 背景グラデーション | mode=28 | opacity=100.0 | visible=1 | group=0
script-fu-Warning: exported /dev/shm/t172/work/gimp_flat.png
  • mode=28 は GIMP 2.10 の「標準」、mode=30 は「乗算」です。不透明度60%も、グループの入れ子(字下げの2行)も、非表示(visible=0)もそのまま残りました。
  • 書き出した PNG を、psd-tools が読んだ合成画像と1画素ずつ比べると、違う画素は0でした。
  • 起動から書き出しまでの時間は、5回の中央値で1.44秒でした(画面を出さない起動を含む)。

使ったスクリプト(Script-Fu)の要点は次のとおりです。読み込み → レイヤー一覧 → 画像の統合 → PNG で保存、の順に呼んでいます。

(let* ((img (car (gimp-file-load RUN-NONINTERACTIVE "sample.psd" "sample.psd"))))
  (for-each (lambda (l) (gimp-message (car (gimp-item-get-name l))))
            (vector->list (cadr (gimp-image-get-layers img))))
  (let ((flat (car (gimp-image-flatten img))))
    (gimp-file-save RUN-NONINTERACTIVE img flat "out.png" "out.png")))

画面で PNG・JPG に書き出す手順

GIMP では、PSD や PNG にするのは「保存」ではなく「エクスポート」です。GIMP のマニュアルは、画像のすべてを保存できるのは GIMP 独自の XCF 形式だけで、他の形式へはエクスポートで書き出すと説明しています。「ファイル」→「名前を付けてエクスポート」で、ファイル名の拡張子を .png か .jpg にして書き出します。レイヤーを残して作業を続けたいときは XCF で保存しておき、PSD のまま返す必要があるときはエクスポートで .psd を選びます。

Krita も PSD を開けます。Krita のドキュメントは、ラスターレイヤー・描画モード・レイヤースタイル・ベクターシェイプ・テキストレイヤー・グループ・透明マスクの読み書きに対応すると書く一方で、外部のプログラムが PSD に100%対応するのはできないとも説明しています。

Python(psd-tools)でPSDを開く・レイヤーごとに書き出す

この節では、Python の psd-tools で PSD のレイヤー一覧を出し、全体とレイヤー1枚ずつを PNG にする方法と、実際に出たエラーが分かります。

psd-tools は、PSD・PSB を読み、合成画像やレイヤーを Pillow の画像として取り出せる Python のライブラリです。作業用の仮想環境に入れて使いました。

python3 -m venv venv
venv/bin/pip install psd-tools
from psd_tools import PSDImage

psd = PSDImage.open('sample.psd')
print(psd)
for layer in psd.descendants():          # グループの中まで順にたどる
    print(layer, layer.blend_mode.name, layer.opacity)
psd.composite().save('pt_composite.png') # 全体を1枚の PNG に
PSDImage(mode=3 size=800x500 depth=8 channels=3)
PixelLayer('背景グラデーション' size=800x500 mask) NORMAL 255
PixelLayer('山' size=800x500 mask) NORMAL 255
PixelLayer('帯(乗算60%)' size=800x500 mask) MULTIPLY 153
Group('見出しグループ' size=800x500) NORMAL 255
PixelLayer('太陽' size=800x500 mask) NORMAL 255
PixelLayer('文字(画像化)' size=800x500 mask) NORMAL 255
PixelLayer('非表示メモ' size=800x500 invisible mask) NORMAL 255

不透明度は0〜255で表され、153は60%です。composite() は、PSD に合成画像が入っていればそれを返し、composite(force=True) にするとレイヤーから組み立て直します。この違いは「真っ白」の節で効いてきます。

レイヤーを1枚ずつ PNG にする

import sys, pathlib
from psd_tools import PSDImage
psd = PSDImage.open(sys.argv[1])
out = pathlib.Path(sys.argv[2]); out.mkdir(exist_ok=True)
for i, layer in enumerate(psd.descendants()):
    if layer.is_group():
        continue
    im = layer.composite()            # レイヤー1枚を画像に
    if im is None:
        continue
    name = f"{i:02d}_{layer.name}.png".replace("/", "_")
    im.save(out / name)
    print(name, layer.bbox, "表示" if layer.visible else "非表示")
00_背景グラデーション.png (0, 0, 800, 500) 表示
01_山.png (0, 0, 800, 500) 表示
02_帯(乗算60%).png (0, 0, 800, 500) 表示
04_太陽.png (0, 0, 800, 500) 表示
05_文字(画像化).png (0, 0, 800, 500) 表示
06_非表示メモ.png (0, 0, 800, 500) 非表示

非表示のレイヤーも書き出されます。要らない場合は if not layer.visible: continue を足します。レイヤー名に「/」が入ると保存先のフォルダーと間違えるため、置き換えています。

psd-tools でできること・できないこと

psd-tools の公式ドキュメントは、PSD・PSB の低いレベルの構造の読み書きと、レイヤーの画像の取り出しには対応し、画素レイヤーの合成と描画モード(ディザ合成を除く)は一部の対応、調整レイヤーの合成・多くのレイヤー効果の合成・文字の描画(フォントのレンダリング)・文字レイヤーの文字の編集・スマートオブジェクトの編集には対応しないとしています。文字や効果を多く使った PSD は、psd-tools の合成結果が Photoshop の見た目と一致しないことがあります。

日本語のレイヤー名で保存したら UnicodeEncodeError

見本を作る途中で、日本語の名前を付けたレイヤーを保存しようとすると、次のエラーで止まりました。

  File ".../psd_tools/psd/bin_utils.py", line 304, in write_pascal_string
    data = value.encode(encoding)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-8: character maps to <undefined>
encoding with 'macroman' codec failed

PSD のレイヤー名には、昔からある1バイト文字の欄と、Unicode の名前を入れる欄の2つがあります。PixelLayer.frompil() に日本語の名前を渡すと、1バイトの欄に入れようとして MacRoman で文字にできず失敗しました。作ったあとで layer.name = '背景' と代入し直すと、1バイトの欄は「?」、Unicode の欄に日本語が入り、保存できました。encoding='cp932' を付けて保存する回り道では保存はできたものの、読み直すと名前が「îwåiÉOÉâÉf…」と化けました(次の「崩れる」の節の文字化けの実物)。

Pillow での形式変換やリサイズは、関連記事「Python Pillowで画像処理|リサイズ・トリミング・形式変換のコード集」で扱っています。psd-tools で取り出した画像は Pillow の画像なので、そのまま縮小や WebP への変換につなげられます。

ImageMagickでPSDをPNG・JPGに変換する(コマンド)

この節では、ImageMagick のコマンドで PSD を PNG・JPG にする書き方と、[0] を付ける理由が分かります。

ImageMagick では、PSD の1枚目([0])が合成画像、2枚目以降がレイヤーです。identify で見ると、見本の PSD は7枚の画像として読まれました。

$ identify sample.psd
sample.psd[0] PSD 800x500 800x500+0+0 8-bit sRGB 1.40104MiB 0.010u 0:00.015
sample.psd[1] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000
sample.psd[2] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000
sample.psd[3] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000
sample.psd[4] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000
sample.psd[5] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000
sample.psd[6] PSD 800x500 800x500+0+0 8-bit sRGB 0.000u 0:00.000

$ identify -format '%s label=%l compose=%[compose]\n' sample.psd
0 label= compose=Over
1 label=? compose=Over
2 label=? compose=Over
3 label=? compose=Multiply
4 label=? compose=Over
5 label=? compose=Over
6 label=? compose=None
  • グループは展開され、中の2枚が普通のレイヤーとして並びました。乗算は Multiply、非表示のレイヤーは None と表示されます。
  • レイヤー名はすべて「?」でした。ImageMagick 6.9.12 は1バイトの名前の欄を読み、Unicode の名前の欄(日本語)は表示しませんでした。

変換の書き方は3通りです。[0] を付けずに PNG にすると、レイヤーの数だけ PNG ができる点に注意します。

# 合成画像を PNG に(いちばん速い)
convert 'sample.psd[0]' out.png

# JPG に(品質を指定)
convert 'sample.psd[0]' -quality 90 out.jpg

# レイヤーから組み立て直して PNG に(合成画像が無い PSD 向け)
convert sample.psd -delete 0 -background none -flatten out.png

# レイヤーを1枚ずつ PNG に(layer-0.png 〜 layer-5.png ができる)
convert sample.psd -delete 0 layer-%d.png

ImageMagick 7 では convert の代わりに magick を使います。シェルでは [0] が特別な意味を持つことがあるため、ファイル名ごと引用符で囲みます。

書き方 何を読むか 時間(中央値) 結果
'sample.psd[0]' → PNG 合成画像 58ms psd-tools の合成画像と全画素一致
'sample.psd[0]' → JPG 品質90 合成画像 14ms 47,627 バイト
-delete 0 -flatten レイヤー 309ms 19.86% の画素が最大1段階だけ違う
[0] なしで PNG 全部 ― out-0.png〜out-6.png の7枚に分かれる

組み立て直した結果が最大1段階(0〜255のうち1)違ったのは、乗算60%の帯の部分の丸め方の差です。目で見て分かる差ではありませんでした。

3つの方法の比較(GIMP・psd-tools・ImageMagick)

この節では、同じ PSD を3つの道具で開いたときの、残る情報・時間・向いている場面の違いが分かります。

58msImageMagick で PNG に合成画像を読む。5回の中央値
277mspsd-tools で PNG にPython の起動を含む
1.44秒GIMP のバッチで PNG に画面を出さない起動を含む
確かめたこと GIMP 2.10.36 psd-tools 1.26.0 ImageMagick 6.9.12
レイヤーの数 7(グループ1+中2を入れ子で) 7(グループを入れ子で) 6(グループは展開)
日本語のレイヤー名 読めた 読めた 「?」になった
乗算・不透明度60% 読めた(mode=30・60.0) 読めた(MULTIPLY・153) 読めた(Multiply)
非表示のレイヤー visible=0 invisible compose=None
書き出した PNG 合成画像と全画素一致 合成画像そのもの [0] は一致、組み立て直しは1段階差
合成画像が白い PSD レイヤーから正しく表示 既定は白、force=True で正しく [0] は白、-flatten で正しく
PSB(版2) 開けない 開けた 開けた
向いている場面 画面で直す・確かめる プログラムで一覧・抽出 コマンドで速く大量に変換

手で1つ開いて直すなら GIMP、レイヤーの名前や位置をプログラムで読むなら psd-tools、とにかく PNG・JPG にしたいなら ImageMagick、と分けると迷いません。

PSDをPNG・JPG・WebPに変換するときの選び方(容量の実測)

この節では、PSD を何の形式に変換すればよいかと、同じ絵での容量の違いが分かります。

文字や線がある絵は PNG、写真が中心なら JPG、Web に載せて軽くしたいなら WebP が目安です。見本の PSD(文字・図形・グラデーション)を ImageMagick で変換した容量は次のとおりでした。

形式 容量 PSD との比 向く場面
PSD(レイヤー入り) 1,469,094 バイト 100% 作業の続き・受け渡し
PNG 23,632 バイト 1.6% 文字・ロゴ・透明を残す
JPG 品質90 47,627 バイト 3.2% 写真
JPG 品質75 23,366 バイト 1.6% 写真を軽く
WebP 品質90 10,726 バイト 0.7% Web に載せる

この見本は色の数が少ない絵なので PNG が JPG より小さくなりました。写真の PSD では逆になることが多く、形式ごとの差は絵によって変わります。どの形式にしてもレイヤーは失われるため、元の PSD は消さずに残しておきます。

拡張子の書き換えは変換ではない

やってはいけないsample.png の名前を sample.psd に変えて「PSD にした」として渡す。中身は PNG のままで、レイヤーも無い
→
代わりにGIMP のエクスポートや ImageMagick で形式を指定して書き出す。PNG から作った PSD にレイヤーが戻ることはない

手元では、名前だけ .psd にした PNG を file コマンドが「PNG image data」と判定した

JPG は透明を持てない形式なので、透明部分がある PSD を JPG にすると透明は残りません。透明を残すなら PNG か WebP を選びます。SVG のようなベクター形式との違いは、関連記事「SVGファイルとは|PNGとの違い・開き方・作り方を実測で解説」で扱っています。

ブラウザで開く(Photopea)とオンライン変換の注意

この節では、インストールせずにブラウザで PSD を開く方法と、オンラインの変換サービスを使う前に確かめたいことが分かります。

Photopea は、ブラウザで動く画像編集アプリで、PSD を開いて編集し、PSD のまま保存したり PNG・JPG に書き出したりできます。公式の学習ページでは、ファイルは「ファイル」→「開く」かドラッグ&ドロップで開き、PSD で保存すると文書の構造をすべて残せ、Web 向けには JPG・PNG・SVG・PDF などに書き出せると説明しています。また、Photopea は端末の中だけで動き、ファイルをインターネットにアップロードせず、接続を切ってもそのまま使えると書いています。この記事の確認では外部のサービスに接続していないため、ここは公式の説明の範囲です。

一方、「PSD を PNG に変換」などの名前のオンライン変換サービスは、ファイルを相手のサーバーに送って変換するものが多くあります。送る前に、次の点を確かめます。

  • 1人から預かったデータか取引先のデザインや未公開の素材は、自分の判断で外部に送らない。手元の GIMP や ImageMagick で変換する
  • 2会社の決まりで使ってよいサービスか外部サービスへのファイルの送信を禁じている会社もある。情報システムの担当に確かめる
  • 3送ったファイルがいつ消えるかサービスの利用規約とプライバシーポリシーで、保存期間と使い道を読む
  • 4処理が端末の中で済むか公式が「アップロードしない」と明記しているかを見る。書いていなければ送られる前提で考える

公開してよい素材で、手元にアプリを入れられない場合だけ、オンラインのサービスを候補にします。

PSDが開けないときの原因と直し方(症状→原因→直し方)

この節では、PSD が開けない・エラーになるときに、表示から原因を絞り込んで直す方法が分かります。

開けない PSD は、「中身が PSB」「途中で切れている」「中身が PSD ではない」の3つが多い原因です。どれも、file コマンドか先頭の4バイトで見分けられます。手元で作ったそれぞれのファイルを3つの道具で開いた結果が次の表です。

症状 原因 直し方
GIMP で「Unsupported file format version: 2」 中身が PSB(拡張子が .psd でも起きる) ImageMagick か psd-tools で PNG にする。作った人に PSD で保存し直してもらう
「Unexpected end of file」「unable to decompress image」 ダウンロードや保存が途中で切れた もう一度受け取る。容量が送り元と同じかを比べる
psd-tools で「is not a valid ColorMode」 拡張子だけ .psd で、中身は PNG など file で本当の形式を見て、その形式として開く
開けるが真っ白・真っ黒 合成画像が入っていない レイヤーから組み立て直す道具(GIMP・-flatten・force=True)で開く
開けるが色が薄い・くすむ CMYK の PSD を RGB に変換して表示している 色の確認は Photoshop か、色の管理ができる環境で行う
レイヤー名が「?」や化けた文字 日本語名を読まない道具・名前の欄の文字コードの違い GIMP・psd-tools で開く。作る側は Unicode の名前を入れる
巨大な PSD で止まる・メモリ不足 縦横の大きさ×レイヤー数×ビット数が大きい ImageMagick で [0] だけ読む。メモリの大きい PC で開く

拡張子は .psd なのに中身が PSB

ImageMagick で横30,001ピクセルの画像を wide.psd という名前で保存すると、中身は自動で PSB(版2)になりました。PSD の上限(30,000ピクセル)を超えたためです。

$ convert -size 30001x10 xc:white wide.psd
$ file wide.psd
wide.psd: Adobe Photoshop Image (PSB), 30001 x 10, grayscale, 16-bit channel

GIMP 2.10.36 は PSB を開けず、次のエラーになりました。psd-tools と ImageMagick は同じ PSB を開いて PNG にでき、元の絵と全画素一致しました。

GIMP-Error: Calling error for procedure 'gimp-file-load':
Error loading PSD file: Unsupported file format version: 2

途中で切れたファイル

見本の PSD の先頭200,000バイトだけを切り出した壊れたファイルを開くと、3つの道具はそれぞれ次の文言を出しました。file コマンドは先頭しか見ないため「Adobe Photoshop Image」と表示し、壊れていることは分かりませんでした。

GIMP:        Error loading PSD file: Unexpected end of file
ImageMagick: convert-im6.q16: unable to decompress image `broken.psd' @ error/psd.c/ReadPSDChannel/1429.
psd-tools:   OSError: Invalid data section size: 268960

拡張子だけ .psd の別の形式

$ file renamed.psd
renamed.psd: PNG image data, 800 x 500, 8-bit/color RGB, non-interlaced

psd-tools:   ValueError: 2050 is not a valid ColorMode

GIMP と ImageMagick は、中身を見て PNG として開きました(GIMP のレイヤー名は「Background」)。エラーの文言が分かりにくいときは、まず file で本当の形式を確かめると早く切り分けられます。

1

容量を見る

0バイトや、送り元より小さいなら途中で切れている。受け取り直す。

全端末

2

本当の形式を見る

Linux・Mac は file 名前.psd。PSB・PNG・JPEG なら、その形式として開く。

Linux・Mac

3

別の道具で開く

GIMP で開けなければ ImageMagick・psd-tools・Photopea を試す。道具ごとに対応範囲が違う。

全端末

4

作った人に保存し直しを頼む

PSD(PSB でなく)で、互換性を優先する設定を付けて保存してもらう。PNG も一緒にもらうと確実。

受け渡し

レイヤーが崩れる・色が変わる原因(合成画像・CMYK・文字・効果)

この節では、PSD は開けたのに見た目が Photoshop と違うときの原因と、手元で再現した違いの大きさが分かります。

見た目が崩れる原因は、「合成画像の有無」「CMYK」「Photoshop にしか無い機能(文字・調整レイヤー・効果・スマートオブジェクト)」の3つに分けられます。

合成画像が無いと「真っ白」に見える道具がある

見本の PSD の合成画像の区画だけを白で埋めたファイル(レイヤーはそのまま)を作り、3つの道具で開きました。仕様書が言う「互換性を優先しないで保存した PSD」に近い状態です。

開き方 読むもの 正しい絵との差
GIMP で開いて書き出し レイヤー 違う画素 0%(正しく表示)
ImageMagick 'nocomp.psd[0]' 合成画像 98.01% の画素が違う(真っ白)
ImageMagick -delete 0 -flatten レイヤー 最大1段階の差(正しく表示)
psd-tools composite() 合成画像 98.01% の画素が違う(真っ白)
psd-tools composite(force=True) レイヤー 最大1段階の差(正しく表示)

サムネイルやビューアーで真っ白なのに、GIMP では正しく見える PSD は、この状態が疑われます。レイヤーから組み立て直す道具で開けば中身は取り出せます。

CMYK の PSD は色が変わる

印刷用の PSD は CMYK(シアン・マゼンタ・イエロー・ブラック)で作られていることがあります。GIMP 2.10.30 のリリースノートは、CMYK の PSD を「当面は sRGB に変換して」表示すると説明しています。以前の版の GIMP は CMYK の PSD を開けないと紹介されることがありますが、手元の 2.10.36 では開けました。ただし色は変わりました。

元の RGB         空 srgb(47,95,201)        太陽 srgb(255,170,40)          山 srgb(40,110,70)
GIMP の書き出し  空 srgb(46.8%,64.5%,90.0%) 太陽 srgb(100%,83.6%,43.3%)  山 srgb(43.3%,68.8%,56.0%)

パーセントを0〜255に直すと、空は (119,165,230)、山は (110,175,143) で、全体が明るく薄い色になりました(全画素の平均で53段階の差)。この見本の CMYK は ICC プロファイル(色の基準)を付けずに ImageMagick で作ったもので、プロファイルの付いた印刷用データでは結果が変わります。psd-tools では CMYK の画像を PNG に保存しようとすると次のエラーになり、.convert('RGB') を挟むと保存できました。

OSError: cannot write mode CMYK as PNG

Photoshop にしか無い機能は再現しきれない

文字レイヤー(フォントで描く文字)、調整レイヤー(下の層の色を後から変える層)、レイヤースタイル(影・境界線などの効果)、スマートオブジェクトは、Photoshop 以外の道具では対応がまちまちです。psd-tools の公式ドキュメントは、調整レイヤーの合成・多くの効果・フォントの描画に対応しないと明記しています。Krita は文字レイヤーやレイヤースタイルの読み込みに対応すると書いていますが、PSD を100%扱える外部のプログラムは無いとも説明しています。この記事では Photoshop を使っていないため、これらの機能を持つ PSD は作っていません。このような PSD を受け取ったら、見た目の確認は PSD と一緒に渡された PNG を基準にするのが確実です。

レイヤー名の文字化け

日本語の名前が1バイトの名前の欄にしか入っていない PSD(psd-tools で encoding='cp932' を付けて作ったもの)は、道具によって次のように見えました。

psd-tools:  PixelLayer('îwåiÉOÉâÉfÅ[ÉVÉáÉì' size=800x500 mask)
GIMP:       (invalid UTF-8 string) #5 | mode=28 | opacity=100.0 | visible=0

Unicode の名前の欄に日本語が入っている正しい PSD は、GIMP と psd-tools では日本語のまま、ImageMagick では「?」と表示されました。名前が化けても、絵そのものは壊れていません。

大量のPSDをまとめてPNGに変換する(フォルダー一括)

この節では、フォルダーの中の PSD をまとめて PNG にするスクリプトと、壊れたファイルが混ざっていたときの動きが分かります。

数が多いときは、1つずつ開くより、スクリプトでフォルダーごと変換するほうが速く、失敗したファイルも一覧で分かります。正常な PSD・16ビット・CMYK・中身が PSB・途中で切れたもの、の5つを入れたフォルダーで試しました。

import sys, pathlib
from psd_tools import PSDImage
src = pathlib.Path(sys.argv[1])
for path in sorted(src.glob("*.psd")):
    try:
        psd = PSDImage.open(path)
        psd.composite().convert("RGB").save(path.with_suffix(".png"))
        print("OK ", path.name, psd.size)
    except Exception as e:
        print("NG ", path.name, type(e).__name__, e)
NG  broken.psd OSError Invalid data section size: 268960
OK  cmyk.psd (800, 500)
OK  large.psd (800, 500)
OK  rgb16.psd (800, 500)
OK  sample.psd (800, 500)

real	0m0.350s

壊れたファイルで全体が止まらないよう、1つずつ try で囲んでいます。.convert("RGB") は CMYK のエラーを避けるためで、透明を残したいときは "RGBA" にします。ただし CMYK を単純に RGB にすると色の基準は考慮されないため、印刷用のデータは色を目で確かめます。サブフォルダーの中まで探すなら glob を rglob にします。ファイルの探し方は、関連記事「Pythonファイル一覧の取得|globとos.listdir・再帰・拡張子」で扱っています。

コマンドだけで済ませるなら、シェルの for で ImageMagick を回します。元のフォルダーと混ざらないよう、出力先のフォルダーを分けます。

mkdir -p png
for f in *.psd; do convert "${f}[0]" "png/${f%.psd}.png"; done

よくあるエラー原文と判断表

この節では、この記事で実際に出たエラーの原文と意味、そして目的ごとにどの道具を選ぶかが一覧で分かります。

エラーの原文 出た道具 意味と直し方
Error loading PSD file: Unsupported file format version: 2 GIMP 2.10.36 PSB を開こうとした。ImageMagick・psd-tools で開く
Error loading PSD file: Unexpected end of file GIMP 2.10.36 ファイルが途中で切れている。受け取り直す
unable to decompress image `broken.psd' ImageMagick 6.9.12 同上。レイヤーの画素を最後まで読めない
OSError: Invalid data section size psd-tools 同上。区画の長さとファイルの実際の長さが合わない
ValueError: 2050 is not a valid ColorMode psd-tools 中身が PSD ではない。file で形式を確かめる
OSError: cannot write mode CMYK as PNG psd-tools(Pillow) CMYK のまま PNG にしようとした。.convert('RGB') を挟む
UnicodeEncodeError: 'charmap' codec can't encode characters psd-tools(保存) 日本語名を1バイトの欄に入れようとした。作成後に layer.name に代入する
(invalid UTF-8 string) #5 GIMP 2.10.36 レイヤー名の文字コードが合わない。絵は壊れていない

判断表:目的別にどれを使うか

目的 第一候補 次の候補 避けたいこと
1枚だけ中身を見たい(Mac) プレビュー GIMP 知らないサイトにアップロード
1枚だけ中身を見たい(Windows) Photopea(端末内で処理と公式が説明) GIMP 拡張子を .png に書き換える
PNG・JPG にして資料に貼りたい プレビューの書き出し・GIMP のエクスポート ImageMagick 元の PSD を消す
レイヤーを少し直して返したい GIMP・Krita・Photopea Photoshop 文字・効果がある PSD を Photoshop 以外で上書き
レイヤーを1枚ずつ素材にしたい psd-tools ImageMagick(名前は残らない) 非表示のレイヤーを確かめずに使う
何百個も変換したい ImageMagick・psd-tools のスクリプト GIMP のバッチ エラーで全体が止まる書き方
印刷用(CMYK)の色を確かめたい Photoshop・色の管理ができる環境 渡された PDF・見本の画像 GIMP の表示の色で判断する

よくある質問

Q. PSDファイルは無料で開けますか? A. 開けます。Mac はプレビュー、Windows・Mac・Linux は無料の GIMP、ブラウザなら Photopea で開けます。この記事では GIMP 2.10.36 で、レイヤー・グループ・乗算・日本語名まで読めました。

Q. Windows 11 の標準のアプリで PSD は開けますか? A. Adobe の解説では、Creative Cloud が無い場合、Windows の標準の機能では PSD を扱えないとされています。GIMP をインストールするか、ブラウザで Photopea を使います。

Q. iPhone で PSD を見られますか? A. Adobe は、Photoshop Express アプリで iPhone や Android から PSD を開けると案内しています。レイヤーを本格的に直すなら PC で作業します。

Q. PSD を PNG にするとレイヤーはどうなりますか? A. すべてのレイヤーが重ねられた1枚になり、レイヤーは戻せません。元の PSD は残しておきます。

Q. PNG を PSD に変換すればレイヤーに分かれますか? A. 分かれません。PNG から作った PSD は1枚のレイヤーだけです。名前の .png を .psd に変えただけでは中身は PNG のままで、手元では file コマンドが「PNG image data」と判定しました。

Q. PSD と PSB の違いは何ですか? A. PSD は縦横30,000ピクセル・2GB まで、PSB(ラージドキュメント形式)は縦横300,000ピクセルまで扱えます。ファイルの先頭の版の番号が PSD は1、PSB は2です。GIMP 2.10.36 は PSB を開けませんでした。

Q. GIMP で開いた PSD の色が薄くなりました。 A. CMYK の PSD の可能性があります。GIMP は CMYK の PSD を sRGB に変換して表示するため、手元では全体が明るく薄い色になりました。印刷用の色は Photoshop など色の管理ができる環境で確かめます。

Q. サムネイルが真っ白なのに、GIMP では絵が見えます。 A. PSD に合成画像が入っていない(白い)可能性があります。サムネイルやビューアーは合成画像を読み、GIMP はレイヤーから組み立て直すため、見え方が分かれます。手元で再現すると、合成画像を読む方法は98%の画素が白くなりました。

Q. PSD の容量が大きくてメールで送れません。 A. クラウドストレージで共有するか、ZIP にします。見本の PSD は圧縮していない区画があったため、ZIP で 1.47MB から 54KB になりました。圧縮済みのデータが多い PSD はあまり小さくなりません。

Q. Photoshop の文字レイヤーを GIMP で直せますか? A. 文字レイヤーや効果、スマートオブジェクトは、Photoshop 以外の道具では再現しきれないことがあります。psd-tools は文字の描画や文字の編集に対応しないと公式に書いています。文字を直す場合は Photoshop で作業するか、作った人に頼むのが確実です。

まとめ

  • PSD は Photoshop の保存形式で、レイヤーごとの画像と、全部を重ねた合成画像を持つ。大きさは縦横30,000ピクセル・2GB まで、超えると PSB になる。
  • Photoshop が無くても、Mac はプレビュー、どの OS でも GIMP・Photopea で開ける。PNG・JPG にするなら、プレビューの書き出し、GIMP のエクスポート、convert 'in.psd[0]' out.png。
  • 自作の PSD では、GIMP と psd-tools はレイヤー・グループ・乗算60%・日本語名を読め、ImageMagick は名前が「?」になった。変換は ImageMagick 58ms、psd-tools 277ms、GIMP 1.44秒だった。
  • 開けないときは、PSB(GIMP 2.10 は開けない)・途中で切れた・中身が別の形式、を file と容量で見分ける。真っ白は合成画像が無い状態で、レイヤーから組み立て直す道具で開く。
  • CMYK は色が変わり、文字・調整レイヤー・効果は Photoshop 以外で再現しきれない。見た目の基準は一緒に渡された PNG にし、預かったデータはオンラインの変換サービスに送らず手元で変換する。

参考・出典

確認日:2026年10月29日

  • Adobe「PSDファイルの詳細と開く方法」:https://www.adobe.com/jp/creativecloud/file-types/image/raster/psd-file.html
  • Adobe「Adobe Photoshop File Formats Specification」(2019年11月):https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/
  • Library of Congress「Adobe Photoshop Family」(PSD・PSB の上限と合成画像):https://loc.gov/preservation/digital/formats/fdd/fdd000523.shtml
  • GIMP「GIMP 2.10.30 Released」(CMYK の PSD の扱い):https://www.gimp.org/news/2021/12/21/gimp-2-10-30-released/
  • GIMP ユーザーマニュアル「第6章 GIMP から画像を引き出す」:https://docs.gimp.org/2.10/ja/gimp-images-out.html
  • Krita Manual「*.psd」:https://docs.krita.org/general_concepts/file_formats/file_psd.html
  • psd-tools ドキュメント:https://psd-tools.readthedocs.io/en/latest/
  • Photopea「Learn」「Opening and Saving」:https://www.photopea.com/learn/ ・ https://www.photopea.com/learn/opening-saving
  • Apple「Macの『プレビュー』で画像のファイルタイプを変換する」:https://support.apple.com/ja-jp/guide/preview/prvw1012/mac
  • ImageMagick 6.9.12-98(Ubuntu 24.04 のパッケージ)・file 5.45 の実行結果

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「PSDファイルとは?Photoshopなしで開く方法・変換と開けない原因」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ
参加受付中

AI駆動開発、 無料セミナー