トラブルシューティング Aspose.PSD FOSS for Python
トラブルシューティング Aspose.PSD FOSS for Python
このページでは、Aspose.PSD FOSS for Python を使用して PSD/PSB ドキュメントを読み込み、検査、保存する際に遭遇する最も一般的な問題を取り上げています。
読み込みの問題
PsdLoadException がサポートされていないバージョンに関するメッセージを表示する場合
ファイルの宣言された PSD バージョンフィールドが標準の PSD でも大容量ドキュメント用の PSB でもありません。読み込む前に、ファイルが正真正銘で破損していない PSD/PSB ドキュメントであることを確認してください:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException がセクション長が境界を超えていることに関するエラー
ファイルの内部長さフィールドが実際のサイズと一致していません — これは通常、ファイルが切り捨てられたか破損していることを意味し、サポートされていないがそれ以外は有効な構造を使用しているということではありません。元のアプリケーションからファイルを再エクスポートし、再試行してください。
保存の問題
PsdSaveExceptionについてのPascal文字列長
文字列値(多くの場合はレイヤーまたはリソース名)が255バイトを超えています。これはPSDのPascal文字列フィールドがエンコードできる最大サイズです:
layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")編集の問題
NotSupportedException プロパティ設定時
このFOSSビルドではいくつかのプロパティが読み取り専用です。PsdImage上では: active_layer, image_resources, global_layer_resources, has_transparency_data。Layer上では: channel_information, layer_mask_data, layer_blending_ranges_data。これらは取得専用として扱い、代入しないでください。
レイヤーの不透明度を設定した後、見た目が正しくありません
Layer.opacityは慣例的に0〜255の値であり、0.0〜1.0の小数やパーセンテージではありません:
layer.opacity = 200 # approximately 78% opaque, not 200%レイヤーの削除は効果がありません
PsdImage.layers はコレクションレベルで機能するセッターがありますが、個々のリスト要素はその場で単純に削除できません — フィルタ済みリスト全体を再代入してください:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]インストールの問題
パッケージが見つかりません
正確なパッケージの識別子を確認してください:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH診断チェックリスト
サポートチケットを作成する前に、次のチェックリストを実行してください:
- ファイルが本当に PSD/PSB であることを確認してください — a
PsdLoadExceptionサポートされていないバージョンに関するものは、通常、そのファイルが実際の PSD/PSB ドキュメントではないことを意味します。 - 確認してください
NotSupportedException— 上記に列挙された7つの読み取り専用プロパティのいずれかを設定してしまい、読み取っていない可能性があります。 - Verify
opacity0〜255 の範囲内です、0.0〜1.0 や 0〜100 ではありません。 - 文字列の値は 255 バイト未満に保ってください 保存前に、回避するために
PsdSaveException. - Call
image.save各編集後に — a に対する変更Layerインスタンスは、ドキュメントが保存されるまで永続化されません。