Python で Aspose.PSD FOSS Core API を使用する方法

Python で Aspose.PSD FOSS Core API を使用する方法

Aspose.PSD FOSS for Python は、PsdImage(Image のサブクラス)を通じて PSD/PSB ドキュメント構造を読み込み、検査します。本記事では、ドキュメントのロード、ヘッダーと画像リソースの読み取り、そしてディスクへの保存について説明します。

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

ステップ 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: PSD/PSB ドキュメントを読み込む

PsdImage.load() はファイルパスまたはストリームからドキュメントを開きます:

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load("input.psd")

ステップ 4: ドキュメントヘッダーを検査する

PsdImage は解析されたドキュメントから読み取ったヘッダー項目を公開します: width, height, bits_per_channel, color_mode(ColorModes 値)、および compression(CompressionMethod 値):

print(f"{image.width}x{image.height}, {image.bits_per_channel} bpc")
print(f"Color mode: {image.color_mode}")    # e.g. ColorModes.RGB
print(f"Compression: {image.compression}")  # e.g. CompressionMethod.RLE
print(f"Flattened: {image.is_flatten}")

ColorModes の値は BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE, および LAB です。CompressionMethod の値は RAW, RLE, ZIP_WITHOUT_PREDICTION, および ZIP_WITH_PREDICTION です。


ステップ 5: 画像リソースブロックを読み取る

image_resources はドキュメントの解析済み ResourceBlock エントリを返します。各ブロックは id, name, および size を公開します:

for resource in image.image_resources:
    print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")

image_resources このFOSSビルドでは読み取り専用です — 代入しようとすると例外が発生します NotSupportedException (Known Limitations を参照してください FAQ).


ステップ 6: ドキュメントを保存する

ドキュメントを書き戻し、次に画像のリソースを解放します:

image.save("output.psd")
image.dispose()

一般的な問題と対策

PsdLoadException ファイルを読み込む際に。 入力は有効なPSD/PSBドキュメントではないか、ヘッダーの検証に失敗しました。ロードする前に、ファイルが正当なPSD/PSBファイルであることを確認してください。

NotSupportedException 設定時に image_resources or global_layer_resources. これらのセッターはこのFOSSビルドではサポートされていません。扱いは image_resources 読み取り専用として。

よくある質問

ファイルパスではなくストリームから PSD ファイルを読み込むことはできますか?

はい — PsdImage.load() はファイルパス文字列または読み取り可能なストリームのいずれかを受け入れます(io.BytesIO/io.BufferedIOBase)。

image_resources にレイヤーデータは含まれていますか?

いいえ。 image_resources ドキュメントレベルのリソースブロック(PSD画像リソースセクションから解析されたもの)を保持します。レイヤーレベルのデータはこれを介して読み取られます PsdImage.layers — 参照 レイヤーの操作.

PsdImage.version は PSD ファイル形式のバージョンですか?

いいえ。PsdImage.version は内部の Aspose.PSD 互換 API バージョン番号(現在は 6)を報告します — これは読み込まれたファイルが PSD か PSB かとは無関係です。そのセッターは値 6 のみ受け付け、他の値は ValueError を発生させます。

参照

 日本語