.NET で Aspose.PSD FOSS Core API を操作する方法
Aspose.PSD FOSS for .NET は、Image のサブクラスである PsdImage を通じて PSD/PSB 文書構造をロードおよび検査します。本稿では、文書のロード、ヘッダーと画像リソースの読み取り、そしてディスクへの保存について説明します。
ステップバイステップガイド
ステップ 1: パッケージをインストールする
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildステップ 2: 必要なクラスをインポートする
using Aspose.PSD.FileFormats.Psd;ステップ 3: PSD/PSB ドキュメントをロードする
PsdImage.Load はファイルパスまたはストリームからドキュメントを開きます:
using var image = PsdImage.Load("input.psd");ステップ 4: ドキュメントヘッダーを検査
PsdImage は、解析されたドキュメントから読み取ったヘッダー フィールドを公開します: Width, Height, BitsPerChannel, ColorMode(ColorModes 値)、および Compression(CompressionMethod 値):
Console.WriteLine($"{image.Width}x{image.Height}, {image.BitsPerChannel} bpc");
Console.WriteLine($"Color mode: {image.ColorMode}"); // e.g. ColorModes.Rgb
Console.WriteLine($"Compression: {image.Compression}"); // e.g. CompressionMethod.RLE
Console.WriteLine($"Flattened: {image.IsFlatten}");ColorModes の値には Bitmap, Grayscale, Indexed, Rgb, Cmyk が含まれ、他にも (Multichannel, Duotone, Lab) があります。CompressionMethod の値は Raw, RLE, ZipWithoutPrediction、および ZIP-with-prediction バリアントです。
ステップ 5: 画像リソースブロックを読み取る
ImageResources はドキュメントの解析済み ResourceBlock エントリを返します。各ブロックは ID, Name, Size を公開します:
foreach (var resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}ImageResources このFOSSビルドでは読み取り専用です — 代入すると例外がスローされます NotSupportedException (Known Limitations のセクションをご参照ください FAQ).
ステップ 6: ドキュメントを保存する
image.Save("output.psd");一般的な問題と対策
PsdLoadException ファイルを読み込む際に. 入力は有効なPSD/PSBドキュメントではないか、ヘッダーの検証に失敗しました。読み込む前に、ファイルが正真正銘のPSD/PSBファイルであることを確認してください。
NotSupportedException 設定時に ImageResources or GlobalLayerResources. これらのセッターはこのFOSSビルドではサポートされていません。扱いは ImageResources 読み取り専用として.
ColorMode or Compression 名前ではなく数値として出力されます。 プロパティを列挙型に明示的にキャストするか、あるいは使用してください .ToString(), 読みやすい名前を取得するために (ColorModes.Rgb, ではなく 3).
よくある質問
ファイルパスではなくストリームから PSD ファイルを読み込むことはできますか?
はい — PsdImage.Load には Stream を受け取るオーバーロードがあります。
ImageResources はレイヤーデータを含みますか?
いいえ。 ImageResources ドキュメントレベルのリソースブロック(PSD画像リソースセクションから解析された)を保持します。レイヤーレベルのデータは以下を通じて読み取られます PsdImage.Layers — 参照 レイヤーの操作.
PsdImage.Version は PSD ファイル形式のバージョンですか?
いいえ。PsdImage.Version は内部の Aspose.PSD 互換 API バージョン番号(現在は 6)を報告します — これは読み込まれたファイルが PSD か PSB かとは無関係です。