1. 製品
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

.NET 用 Aspose.PSD FOSS

レイヤーメタデータへのアクセスが可能な PSD/PSB ファイルの読み込み、検査、保存のためのオープンソース .NET ライブラリ。MIT ライセンス、Adobe Photoshop は不要です。

PSD/PSB ファイル用のオープンソース .NET ライブラリ

Aspose.PSD FOSS for .NET は無料で MIT ライセンスの純粋な C# ライブラリで、ロードおよび検査、
Adobe Photoshop を必要とせずに Adobe Photoshop PSD および PSB ファイルを保存するための
プロプライエタリランタイムです。このライブラリは PsdImage と Layer を中心とした軽量でスタンドアロンな API を提供し、
Layer を中心に、.NET 開発者にネイティブ依存なしで PSD ドキュメントの構造へプログラムからアクセスできるようにし、
コンパイル時のネイティブ依存が不要です。このライブラリは PSD/PSB ファイルの寸法、カラーモード、ビット深度、圧縮方式を読み取り、
PsdImage.Layers を通じてすべてのレイヤーを公開します:各 Layer は名前、
境界、不透明度、可視性、ブレンドモードキー(BlendMode)を報告し、下位レベルの
チャンネル情報(ChannelInformation)やマスクデータ(LayerMaskData)を提供します。レイヤーメタデータのサブセットは
名前、境界(Left/Top/Right/Bottom)およびブレンドモードを含み、
PsdImage.Save() でその場で変更しディスクに永続化できます;それ以外は
この FOSS ビルドでは設計上読み取り専用です。Aspose.PSD FOSS for .NET は MIT ライセンスです。インストールしてください
dotnet add package Aspose.PSD.FOSS — このライブラリはサードパーティのネイティブ依存がゼロで、
依存関係は .NET BCL のみです。エンタープライズ製品ファミリーについては、Aspose.PSD — Enterprise Product Family をご覧ください。

PSD/PSB ファイルの読み込みと検査

  • Image.Load(filePath) または Image.Load(stream) はファイルを開き、Image を返します。PSD 固有のアクセスのために PsdImage にキャストします
  • PsdImage.Width、Height、Size はキャンバスの寸法を報告します
  • PsdImage.ColorMode(ColorModes)、BitsPerChannel、および Compression(CompressionMethod)はピクセルデータのエンコード方法を示します
  • PsdImage.Version(PsdVersion)は標準 PSD と大容量ドキュメント用の PSB バリアントを区別します

デザインファイルの検証とカタログ化

  • 下流プロセスに渡す前に、デザインファイルのバッチを検証する
  • PSD/PSB のサイズとカラーモードの軽量アセットカタログを作成する
  • 標準的な PSD と異なる取り扱いが必要な PSB(大規模ドキュメント)ファイルを検出する

レイヤーの操作

  • PsdImage.Layers はドキュメント順にすべての Layer を返します;PsdImage.ActiveLayer はどのレイヤがアクティブかを報告します
  • 各 Layer は Name、Bounds、Opacity、IsVisible、および BlendModeKey(BlendMode)を公開します
  • Layer.ChannelInformation と Layer.LayerMaskData は、より詳細な検査のためにチャンネルとマスクのメタデータを公開します
  • Layer.ChannelsCount はレイヤが保持する画像チャンネルの数を報告します

監査レイヤ構造

  • Photoshopを開かずにPSDのレイヤー構造を監査する
  • デザインレビューのためにレイヤー名、可視性、ブレンドモードのレポートを生成する
  • 以前の編集で残った非表示または不透明度ゼロのレイヤーを特定する

基本レイヤーメタデータの編集

  • Layer.Name、Layer.Left/Top/Right/Bottom、および Layer.BlendModeKey は直接設定できます
  • PsdImage.Save(filePath) または PsdImage.Save(stream) は、変更されたドキュメントをディスクに保存します
  • Image.Load で保存したファイルを再読み込みすると、編集が正しく往復したことが確認できます
  • 上記に記載されていないプロパティ(チャンネル情報、マスクデータ、ブレンド範囲、画像リソース)を設定しようとすると NotSupportedException がスローされます — このビルドはメタデータのみの編集をサポートしており、完全な再作成はサポートしていません

軽量、スクリプト可能な編集

  • 自動化されたファイル整理パイプラインの一部としてレイヤーをプログラムで名前変更する
  • デザインツールを使用せずにレイヤーのバウンディングボックスを再配置またはサイズ変更する
  • 多数のファイルでブレンドモードを一括更新し、一貫性を保つ

リソースブロックとドキュメント状態の検査

  • PsdImage.ImageResources と GlobalLayerResources は ResourceBlock/LayerResource コレクションを公開します
  • PsdImage.GlobalLayerMaskInfo はドキュメント全体のレイヤーマスク情報を報告します
  • PsdImage.IsFlatten と HasTransparencyData はドキュメントレベルのフラグを報告します
  • PsdLoadException と PsdSaveException は明確なメッセージでロード/保存エラーを表面化します

診断と検査

  • 特定の PSD ファイルが読み込めない原因を診断し、汎用エラーではなく型付き例外で示す
  • さらに処理を行う前に、ファイルがフラット化された形で保存されているか確認する
  • 埋め込みリソースブロックを調査し、フォーマットレベルのメタデータを確認する

PSD ファイルを読み込み、レイヤーを検査する

Image.Load でファイルを読み込み、結果を PsdImage にキャストして PSD 固有のメンバーを使用します。

using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");

レイヤーメタデータを編集して保存

レイヤー名、境界、およびブレンドモードはその場で変更でき、ディスクに保存し直すことができます。

using (var image = (PsdImage)Image.Load("test.psd"))
{
    image.Layers[0].Name = "Renamed layer";
    image.Layers[0].Left = 10;
    image.Layers[0].Top = 20;
    image.Layers[0].Right = 40;
    image.Layers[0].Bottom = 60;
    image.Layers[0].BlendModeKey = BlendMode.Multiply;
    image.Save("edited.psd");
}

using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");

チャンネル情報の読み取り (読み取り専用)

チャンネル情報は読み取ることはできますが、再割り当てすることはできません — 再設定しようとすると NotSupportedException がスローされます。

using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException

よくある質問

ライセンスモデルは何ですか?

Aspose.PSD FOSS for .NET は MIT ライセンスです。商用製品を含む、MIT ライセンスの条件に従って、使用、変更、再配布が可能です。

Aspose.PSD FOSS for .NET はどうやってインストールしますか?

現在のインストール コマンドについては、上記のインストール セクションをご参照ください。

どの形式を Aspose.PSD FOSS for .NET が読み書きできますか?

PSD および PSB(Photoshop 大規模ドキュメント)ファイルを読み込みおよび保存します。PNG や JPEG などの他のラスタ形式へピクセルデータをレンダリングまたはエクスポートすることはできません。

メインエントリーポイントクラスは何ですか?

PsdImage(Image のサブクラス)。PsdImage.Load でドキュメントをロードし、Layers コレクションとヘッダー プロパティを読み取ります。

レイヤーのメタデータを変更できますか?

はい — Layer は可視性や名前などの複数のプロパティに対して機能するセッターを公開しており、PsdImage.Layers 自体もコレクションを置き換えるための機能するセッターを持っています。いくつかの特定のプロパティ(チャンネル情報、マスクデータ、ブレンド範囲、そしていくつかのドキュメントレベルのリソース)はこの FOSS ビルドでは読み取り専用で、設定しようとすると NotSupportedException がスローされます。

  

サポートと学習リソース

 日本語