PsdImage と Layer を中心とした軽量でスタンドアロンな API を提供し、Layer を中心に、.NET 開発者にネイティブ依存なしで PSD ドキュメントの構造へプログラムからアクセスできるようにし、PsdImage.Layers を通じてすべてのレイヤーを公開します:各 Layer は名前、BlendMode)を報告し、下位レベルのChannelInformation)やマスクデータ(LayerMaskData)を提供します。レイヤーメタデータのサブセットはLeft/Top/Right/Bottom)およびブレンドモードを含み、PsdImage.Save() でその場で変更しディスクに永続化できます;それ以外はdotnet add package Aspose.PSD.FOSS — このライブラリはサードパーティのネイティブ依存がゼロで、Image.Load(filePath) または Image.Load(stream) はファイルを開き、Image を返します。PSD 固有のアクセスのために PsdImage にキャストしますPsdImage.Width、Height、Size はキャンバスの寸法を報告しますPsdImage.ColorMode(ColorModes)、BitsPerChannel、および Compression(CompressionMethod)はピクセルデータのエンコード方法を示しますPsdImage.Version(PsdVersion)は標準 PSD と大容量ドキュメント用の PSB バリアントを区別しますPsdImage.Layers はドキュメント順にすべての Layer を返します;PsdImage.ActiveLayer はどのレイヤがアクティブかを報告しますLayer は Name、Bounds、Opacity、IsVisible、および BlendModeKey(BlendMode)を公開しますLayer.ChannelInformation と Layer.LayerMaskData は、より詳細な検査のためにチャンネルとマスクのメタデータを公開しますLayer.ChannelsCount はレイヤが保持する画像チャンネルの数を報告します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 は明確なメッセージでロード/保存エラーを表面化します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 ライセンスの条件に従って、使用、変更、再配布が可能です。
現在のインストール コマンドについては、上記のインストール セクションをご参照ください。
PSD および PSB(Photoshop 大規模ドキュメント)ファイルを読み込みおよび保存します。PNG や JPEG などの他のラスタ形式へピクセルデータをレンダリングまたはエクスポートすることはできません。
PsdImage(Image のサブクラス)。PsdImage.Load でドキュメントをロードし、Layers コレクションとヘッダー プロパティを読み取ります。
はい — Layer は可視性や名前などの複数のプロパティに対して機能するセッターを公開しており、PsdImage.Layers 自体もコレクションを置き換えるための機能するセッターを持っています。いくつかの特定のプロパティ(チャンネル情報、マスクデータ、ブレンド範囲、そしていくつかのドキュメントレベルのリソース)はこの FOSS ビルドでは読み取り専用で、設定しようとすると NotSupportedException がスローされます。