JavaでPSDファイルを読み込み・変換する方法
JavaでAdobe PhotoshopのPSD形式を扱うならJDeliが最適。PSDファイルの読み込みからPDF・JPG・PNGなど多形式への変換まで、シンプルなAPIで実現できます。

Adobe PhotoshopのネイティブファイルフォーマットであるPSD形式は、デザイン業界で広く使われています。しかし、JavaでPSDファイルを読み込もうとすると、標準のJDK(ImageIO)ではPSD形式がサポートされていないため、困難に直面します。サードパーティのライブラリを導入する必要がありますが、PSD対応だけのために専用ツールを導入するのは効率的ではありません。ここでお薦めしたいのが、PSDを含む幅広い画像形式に対応したJava画像処理ライブラリJDeli(ジェイデリ)です。
PSD形式をJavaで扱う課題
PSD形式はレイヤー情報、カラープロファイル、アルファチャンネルなど複雑なデータ構造を持つフォーマットです。業務システムでは、デザイナーから受け取ったPSDファイルをサーバーサイドで画像変換したり、サムネイルを自動生成したりする要件がしばしば発生します。
JavaのImageIOフレームワークは拡張可能な設計になっていますが、PSD形式のプラグインは標準では提供されていません。オープンソースの実装もいくつか存在しますが、対応範囲が限定的であったり、メンテナンスが停滞していたりするケースも見受けられます。
JDeliの画像処理機能
JDeliはPSD専用のツールではなく、Java向けの汎用画像処理ライブラリです。以下のような幅広い機能を備えています。
- 読み込み対応形式: BMP、DICOM、EMF、GIF、HEIC、JPEG、JPEG2000、PNG、PSD、SGI、TGA、TIFF、WebP、WMFなど14種類以上
- 書き出し対応形式: BMP、GIF、JPEG、JPEG2000、PDF、PNG、TIFF、WebPなど8種類
- 画像処理機能: リサイズ、回転、トリミング、カラースペース変換
- サムネイル生成: 高品質なサムネイルを高速に生成
PSD対応はJDeliの機能の一部にすぎません。WebPやHEICなど、近年利用が増えているフォーマットにも対応しているため、PSDのためだけに導入しても、他の画像処理タスクで幅広く活用できます。
ImageIO互換の設計で移行がスムーズ
JDeliはJavaのImageIOフレームワークと互換性のあるAPIを備えています。既存のImageIOベースのコードからの移行がスムーズに行えるよう設計されており、ファイルタイプの自動判定機能も搭載しています。拡張子に頼らず、ファイルのバイナリヘッダーからフォーマットを正確に識別するため、拡張子が欠落したファイルや誤った拡張子が付いたファイルでも正しく読み込むことができます。
サンプルコード
PSDファイルの読み込み
JDeliでPSDファイルを読み込む最もシンプルな方法は、JDeli.read()メソッドを使う方法です。
// ファイルから直接読み込み
BufferedImage image = JDeli.read(new File("design.psd"));デコーダーを明示的に指定する方法もあります。
// PsdDecoderを直接使用
PsdDecoder decoder = new PsdDecoder();
BufferedImage image = decoder.read(psdData);PSDからPDFへの変換
PSDファイルを読み込んでPDF形式に変換する処理も、数行のコードで実装できます。
// PSDを読み込み
BufferedImage bufferedImage = JDeli.read(new File("design.psd"));
// 必要に応じて画像処理を適用
bufferedImage = operations.apply(bufferedImage);
// PDFとして出力
JDeli.write(bufferedImage, "pdf", new File("output.pdf"));PSDからPNGへの変換
Web表示用にPNG形式へ変換するケースも一般的です。
// PSDを読み込んでPNGに変換
BufferedImage bufferedImage = JDeli.read(new File("design.psd"));
JDeli.write(bufferedImage, "png", new File("output.png"));サムネイルの生成
JDeliのリサイズ機能を組み合わせることで、PSDファイルから直接サムネイルを生成できます。サーバーサイドでの一括処理にも適しています。
導入と動作確認
JDeliはMavenリポジトリから取得可能で、既存のJavaプロジェクトへの導入も容易です。無料トライアル版が提供されており、製品版と同じ機能を自身の開発環境で評価できます。トライアル版では出力画像にウォーターマークが付きますが、すべてのAPIと機能を試すことができます。
まとめ
JavaでPSDファイルを扱う必要があるなら、JDeliは有力な選択肢です。PSD対応だけでなく、14種類以上の画像フォーマットの読み書きに対応しているため、画像処理の汎用ライブラリとして長期的に活用できます。ImageIO互換のAPIにより既存コードからの移行もスムーズで、導入の障壁が低いことも魅力です。まずは無料トライアル版で、実際のPSDファイルを使った動作確認をお試しください。

開発者向けPDF入門ガイド
PDFの仕様や活用方法など、開発者に必要な情報をコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDFのポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。