PSD パーサーのテストに使える 337 個の PSD ファイルコレクション「psd-zoo」を公開しました
PSD ファイルのパーサーを開発する際、テスト用の PSD ファイルを自分で用意するのは非常に手間がかかります。カラーモード、ビット深度、レイヤー効果、テキストワープ、スマートオブジェクト…… Photoshop の機能は膨大で、それぞれを網羅したテストデータを揃えるだけでも一苦労です。
そこで、PSD パーサー実装のテストに使える PSD ファイルコレクション psd-zoo を公開しました。
psd-zoo とは
psd-zoo は、Photoshop の主要機能を網羅的にカバーした 337 個の PSD テストファイルを 19 カテゴリに整理したコレクションです。もともとは Qt ベースの PSD パーサー qtpsd の開発・テスト用に作成したものですが、他の PSD パーサー実装でも広く活用できるように CC0 で公開しています。
カバーしている機能
カラーモードとビット深度
RGB、CMYK、Grayscale、Lab、Bitmap、Indexed、Multichannel、Duotone の各カラーモードに加え、8-bit / 16-bit / 32-bit のビット深度をカバーしています。
ブレンドモード
Normal から Luminosity まで、Darker Color / Lighter Color を含む全 27 種類のブレンドモードを網羅しています。
レイヤー効果
ドロップシャドウ、インナーシャドウ、光彩 (外側/内側)、ベベルとエンボス (全スタイル)、サテン、カラーオーバーレイ、グラデーションオーバーレイ、境界線 (内側/外側/中央) など、主要なレイヤー効果を一通りカバーしています。
テキスト関連
テキストレイヤーだけで 47 ファイル、テキストワープで 17 ファイル と、特に手厚くカバーしています。フォント (Regular/Bold/Italic)、整列、上付き/下付き、フォー Bold/Italic、複数スタイルの混在、縦書き、アンチエイリアスモードなど、テキスト周りのパースで躓きやすいパターンを揃えました。
その他
- 調整レイヤー: 明るさ・コントラスト、レベル補正、トーンカーブ、色相・彩度、カラーバランスなど 22 種
- マスク: レイヤーマスク、ベクトルマスク、デュアルマスク、ぼかしマスク
- シェイプ: 長方形、楕円、角丸長方形、三角形、線、多角形
- スマートオブジェクト / スマートフィルター
- レイヤーカンプ、ガイド、ICC プロファイル (sRGB, Adobe RGB, ProPhoto RGB)
- キャンバスサイズ: 1x1 から 4000x4000、解像度 72〜600 DPI
ファイル構成
psd-zoo/
├── adjustment/ # 調整レイヤー (22 files)
├── bevel/ # ベベルとエンボス (8 files)
├── blend_mode/ # ブレンドモード (28 files)
├── canvas/ # キャンバスサイズ・方向 (15 files)
├── channel/ # アルファ・スポットカラーチャンネル (4 files)
├── color_mode/ # カラーモード・ビット深度 (16 files)
├── document/ # ドキュメントプロパティ (19 files)
├── effect/ # レイヤー効果 (27 files)
├── fill/ # 塗りつぶし・グラデーション (14 files)
├── filter/ # フィルター効果 (9 files)
├── group/ # レイヤーグループ (17 files)
├── layer/ # レイヤープロパティ (44 files)
├── layer_comp/ # レイヤーカンプ (5 files)
├── mask/ # マスク (18 files)
├── misc/ # その他 (3 files)
├── shape/ # シェイプ (15 files)
├── smart/ # スマートオブジェクト (9 files)
├── text/ # テキストレイヤー (47 files)
├── text_warp/ # テキストワープ (17 files)
└── scripts/ # PSD 生成スクリプト
各カテゴリのディレクトリには README と PNG プレビュー画像も含まれているため、中身を確認しながらテストに必要なファイルを選べます。
PSD ファイルの生成方法
すべての PSD ファイルは Adobe Photoshop の COM オートメーション (ExtendScript / JSX) で生成しています。生成スクリプトも scripts/ ディレクトリに同梱しているので、手元の Photoshop 環境で再生成することも可能です。
テキストレイヤーに使用しているフォントはオープンソースの Roboto (Regular / Bold / Italic) のみです。誰でも Google Fonts から無料で入手できるため、環境を問わず同じ PSD ファイルを再生成できます。
ライセンス
CC0 1.0 Universal です。著作権を可能な限り放棄し、誰でも用途を問わず自由に使えるようにしています。PSD パーサーのテストスイートへの組み込み、CI での利用など、用途を問わず自由に使えます。
まとめ
PSD パーサーの開発やテストで「あの機能のテストデータがない……」と困ったことがある方は、ぜひ psd-zoo を活用してください。Issue や Pull Request も歓迎です。