はじめに
Aspose.PSD FOSS for .NET は、少数のクラスを通じて PSD および PSB ドキュメントを読み込み、検査し、保存します。本稿では、入門記事で詳しく扱わなかったコア API の一部、すなわち Image/PsdImage 継承関係、ライブラリ全体で使用されるジオメトリ値型、そしてライブラリが読み込みおよび保存エラーを報告する方法について見ていきます。
含まれるもの
画像と PsdImage
Image は抽象基底クラスで、Width、Height、Bounds、Load()、Save()、および Dispose() を公開します。PsdImage は Image.Load() が PSD/PSB 入力に対して返すシールドされた具体実装で、結果を PsdImage にキャストすると、ドキュメントの残りの表面が露出します:ColorMode、Version、Layers、Compression、BitsPerChannel、その他多数。
using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Bounds: {image.Bounds}"); // from the Image base class
Console.WriteLine($"ColorMode: {image.ColorMode}"); // PsdImage-specific
ジオメトリ値型
Point、Size、Rectangle、および RectangleF は、API 全体で境界と座標に使用される値型です — Layer.Bounds と Image.Bounds はどちらも Rectangle で、PsdImage.Size は Size です。Rectangle には実際のジオメトリメソッドが含まれます:Contains()、Intersect()、Union()、Inflate()、FromLeftTopRightBottom() など。
Rectangle layerBounds = image.Layers[0].Bounds;
Rectangle imageBounds = image.Bounds;
bool fullyInside = imageBounds.Contains(layerBounds);
Rectangle overlap = Rectangle.Intersect(imageBounds, layerBounds);
Console.WriteLine($"Layer fits inside image: {fullyInside}, overlap: {overlap}");
リソースブロックと例外
PsdImage.ImageResources は解析された ResourceBlock[] 配列を返します — 各ブロックは ID、DataSize、Name、および Signature を公開します。この FOSS ビルドでは、ImageResources、GlobalLayerResources、ActiveLayer、および HasTransparencyData は読み取り可能ですが再代入できません — それぞれには呼び出された場合に NotSupportedException をスローするセッターがあるため、プロパティとして表示されても読み取り専用として扱ってください。
ロードと保存のエラーは、2 つの専用例外タイプとして表れます: ドキュメントを解析できない場合は PsdLoadException、ドキュメントを書き戻せない場合は PsdSaveException。
try
{
using var image = (PsdImage)Image.Load(inputPath);
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Failed to load {inputPath}: {ex.Message}");
}
クイックスタート
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildusing Aspose.PSD.FileFormats.Psd;
try
{
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Bounds: {image.Bounds}, ColorMode: {image.ColorMode}");
Console.WriteLine($"ImageResources: {image.ImageResources.Length}");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Load failed: {ex.Message}");
}
サポートされているフォーマット
| 形式 | 拡張子 | 読み取り | 書き込み |
|---|---|---|---|
| Photoshop ドキュメント | psd | ✓ | ✓ |
| Photoshop 大型ドキュメント | psb | ✓ | ✓ |
オープンソースとライセンス
Aspose.PSD FOSS for .NET は MIT ライセンスで提供されており、ロイヤリティなしで商用製品に使用でき、評価用の透かしや使用制限はありません。
このパッケージはバージョン 1.0.0 で、実行時には .NET 10.0 のみが必要です — 他のサードパーティ依存関係はありません。