コア 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 | 解析された画像リソースブロック(読み取り専用) |