コア API

コアAPI

PsdImage は、PSD/PSB ドキュメントのロード、検査、保存のエントリーポイントです。抽象的な Image 基底クラスを拡張し、Width、Height、Bounds、Load()、Save()、および Dispose() を宣言します。


ドキュメントの読み込みと保存

Image.Load() はファイルパスまたは Stream を受け取り、Image を返します。結果を PsdImage にキャストして、ドキュメントの残りの部分にアクセスします。PsdImage.Save() はドキュメントをファイルパスまたはストリームに書き出します。

using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);

ドキュメントヘッダー プロパティ

PsdImage は解析されたヘッダーを型付きプロパティとして公開します: Width、Height、BitsPerChannel、ColorMode、Version、Compression、Size、および IsFlatten。

Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");

画像リソース

PsdImage.ImageResources は解析された ResourceBlock[] 配列を返します。この FOSS ビルドでは、ImageResources、GlobalLayerResources、ActiveLayer、および HasTransparencyData は読み取り可能ですが再代入はできません — それらのセッターは NotSupportedException をスローします。

foreach (ResourceBlock resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}

ヒントとベストプラクティス

  • PSD固有のメンバーにアクセスするには、常に Image.Load() の結果を PsdImage にキャストしてください。
  • Dispose() に相当するオブジェクトは using 文でラップしてください; PsdImage は IDisposable を実装します。
  • これらがセッターを公開しているにもかかわらず、ImageResources、GlobalLayerResources、ActiveLayer、および HasTransparencyData は読み取り専用として扱ってください。
  • インデックスで image.Layers にアクセスする前に image.Layers.Length を確認してください — フラット化されたドキュメントはレイヤーがゼロになることがあります。

一般的な問題

問題原因修正
NotSupportedException は ImageResources を設定する時このプロパティは setter があるにもかかわらず、FOSS ビルドでは読み取り専用です値を読み取ってください;再代入しようとしないでください
フラット化されたドキュメント上の空の image.Layers 配列IsFlatten は true であり、ドキュメントに解析されたレイヤーがありませんインデックスをimage.Layersに入れる前に、image.Layers.Length(またはimage.IsFlatten)を確認してください

FAQ

PSD ドキュメントの読み込みはピクセルデータをデコードしますか?

No. PsdImage.Load() は、ドキュメントヘッダー、レイヤーのメタデータ、およびリソースを、ピクセルデータをデコードしたりレンダリングしたりせずに解析します。

PSD ファイルを別の画像フォーマットに変換できますか?

No. このライブラリは PSD/PSB ドキュメントのみをロード、検査、保存します — ピクセルデータをレンダリングしたり、他の画像フォーマットに変換したりはしません。


API Reference 概要

クラス/メソッド説明
Image.Load(string) / Image.Load(Stream)PSD または PSB ドキュメントを読み込みます
PsdImage.Save(string) / PsdImage.Save(Stream)ドキュメントを保存します
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenドキュメントヘッダーのプロパティ
PsdImage.ImageResources解析された画像リソースブロック(読み取り専用)

参照

 日本語