トラブルシューティング Aspose.PSD FOSS for .NET
トラブルシューティング Aspose.PSD FOSS for .NET
このページでは、Aspose.PSD FOSS for .NET を使用して PSD/PSB ドキュメントを読み込み、検査、保存する際に発生する最も一般的な問題について説明します。
読み込みの問題
PsdLoadException がサポートされていないバージョンに関するメッセージを表示
ファイルの宣言された PSD バージョンフィールドは、標準の PSD でも大容量ドキュメント用の PSB でもありません。読み込む前に、ファイルが正規の、破損していない PSD/PSB ドキュメントであることを確認してください:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException がセクション長が境界を超えているエラー
ファイルの内部長さフィールドが実際のサイズと一致していません — これは通常、ファイルが切り捨てられたか破損していることを意味し、サポートされていないがそれ以外は有効な構造を使用しているということではありません。元のアプリケーションからファイルを再エクスポートして、再度試してください。
保存の問題
PsdSaveException パスカル文字列長に関して
文字列値(主にレイヤーやリソース名)が255バイトを超えています。これはPSDのパスカル文字列フィールドがエンコードできる最大値です:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");編集の問題
NotSupportedException プロパティ設定時
このFOSSビルドではいくつかのプロパティが読み取り専用です。PsdImage上では: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData。Layer上では: ChannelInformation, LayerMaskData, LayerBlendingRangesData。これらは取得専用として扱い、代入しないでください。
レイヤーの不透明度を設定した後、見た目が正しくありません
Layer.Opacity は 0〜255 の範囲の byte であり、0.0〜1.0 の小数やパーセンテージではありません:
layer.Opacity = 200; // approximately 78% opaque, not 200%レイヤーの削除が反映されません
PsdImage.Layers はコレクションレベルで動作するセッターがありますが、個々の配列要素はその場で単純に削除できません — フィルタ済みの配列全体を再代入してください:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();インストールの問題
パッケージが見つかりません
正確なパッケージの識別子を確認してください:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build診断チェックリスト
サポート案件を開く前に、以下のチェックリストを実行してください:
- ファイルが実際に PSD/PSB であることを確認してください — a
PsdLoadExceptionサポートされていないバージョンについては、通常、ファイルが実際の PSD/PSB ドキュメントではないことを意味します。 - 確認してください
NotSupportedException— 上記に列挙された7つの読み取り専用プロパティのいずれかを設定している可能性があり、読み取っていないかもしれません。 - Verify
Opacityは0〜255の範囲です、0.0〜1.0や0〜100ではありません。 - 文字列の値は255バイト未満に保ってください 保存する前に、回避するために
PsdSaveException. - Call
image.Save各編集後に — a への変更Layerインスタンスは、ドキュメントが保存されるまで永続化されません。