Python で PSD ドキュメントを保存およびエクスポートする方法

Python で PSD ドキュメントを保存およびエクスポートする方法

このガイドでは、編集したドキュメントをファイルパスに保存する方法、オープンストリームに保存する方法、そしてその後に読み込まれた画像を破棄する方法を示します。PsdImage.save はドキュメントを書き戻すための唯一の公開エントリポイントで、ファイルパスまたは既にオープンされている書き込み可能なストリームのいずれかを受け付けます。実際にバイトエンコードを行う低レベルのセクションライターは内部実装の詳細であり、直接呼び出すものではありません。

ステップバイステップガイド

ステップ 1: パッケージをインストール

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

ステップ 2: 必要なクラスをインポート

PsdImageはこのガイドの例が必要とする唯一のクラスです:

from aspose_psd_foss.psdimage import PsdImage

ステップ3: ファイルパスに保存

ドキュメントを読み込み、編集を行い、そしてファイルパスに保存し直します:

image = PsdImage.load("input.psd")
image.layers[0].is_visible = False
image.save("output.psd")

ステップ4: 開いているストリームに保存

パスの代わりにストリームを渡すと、保存後もストリームが開いたままになります — 閉じるタイミングは自分で管理できます:

with open("output.psd", "wb") as stream:
    image.save(stream)

ステップ5: 画像を破棄

ロードしたPsdImageが保持しているリソースは、使用が終わったら解放してください:

image.dispose()

一般的な問題と対策

RuntimeError: PsdImage has been disposed. 呼び出すとき save. 画像はすでに破棄されています(経由で dispose() または with 終了したブロック) の前に save が呼び出されました。呼び出し save 破棄する前に。

PsdSaveException Pascal文字列の長さについて。 文字列の値が255バイトを超えています — 参照 PSD Core 例外の処理 and Troubleshooting.

保存時に PSD または PSB コンテナを強制する方法はありません。 出力コンテナ形式を選択する公開された API はありません — 保存は常に読み込まれた形式 (is_large_document / is_psb) ドキュメントが読み込まれた形式です。別のコンテナ形式が必要な場合、この FOSS ビルドにはサポートされた変換パスはありません。

よくある質問

ストリームに保存した後、ストリームは閉じられますか?

いいえ — save にストリームを渡すと、ストリームはその後も開いたままになるので、ライフサイクルは自分で管理できます(Step 4 を参照)。対照的に、ファイルパスに保存する場合は、内部でファイルを開いて閉じます。

内部のセクションライターを save の代わりに直接呼び出すことはできますか?

いいえ — セクションレベルのライターは PsdImage.save によって呼び出される内部実装の詳細です。PsdImage インスタンス上で save を呼び出す以外に、ドキュメントを書き込むための文書化されたサポートされた方法はありません。

参照

 日本語