Hoe te werken met de Aspose.PSD FOSS Core API in Python

Hoe te werken met de Aspose.PSD FOSS Core API in Python

Aspose.PSD FOSS voor Python laadt en inspecteert de PSD/PSB documentstructuur via PsdImage, een subklasse van Image. Dit artikel behandelt het laden van een document, het lezen van de header en afbeeldingsbronnen, en het opslaan ervan terug naar schijf.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

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

Stap 2: Importeer vereiste klassen

PsdImage is het toegangspunt dat door de hele handleiding wordt gebruikt:

from aspose_psd_foss.psdimage import PsdImage

Stap 3: Laad een PSD/PSB Document

PsdImage.load() opent een document vanaf een bestandspad of een stream:

from aspose_psd_foss.psdimage import PsdImage

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

Stap 4: Inspecteer de documentheader

PsdImage exposeert headervelden die zijn gelezen uit het geparste document: width, height, bits_per_channel, color_mode (een ColorModes waarde), en compression (een CompressionMethod waarde):

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 waarden zijn BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE en LAB. CompressionMethod waarden zijn RAW, RLE, ZIP_WITHOUT_PREDICTION en ZIP_WITH_PREDICTION.


Stap 5: Lees Image Resource Blocks

image_resources retourneert de geparste ResourceBlock items van het document. Elk blok exposeert id, name en size:

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

image_resources is alleen-lezen in deze FOSS-build — toewijzen eraan veroorzaakt NotSupportedException (zie Bekende Beperkingen in de FAQ).


Stap 6: Document opslaan

Schrijf het document terug naar de schijf en geef vervolgens de bronnen van de afbeelding vrij:

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

Veelvoorkomende problemen en oplossingen

PsdLoadException bij het laden van een bestand. De invoer is geen geldig PSD/PSB document, of de header is niet gevalideerd. Bevestig dat het bestand een echt PSD/PSB bestand is voordat je het laadt.

NotSupportedException bij het instellen image_resources or global_layer_resources. Deze setters worden niet ondersteund in deze FOSS-build. Beschouw image_resources als alleen-lezen.

Veelgestelde vragen

Kan ik een PSD-bestand laden vanuit een stream in plaats van een bestandspad?

Ja — PsdImage.load() accepteert zowel een bestandspad-string als een leesbare stream (io.BytesIO/io.BufferedIOBase).

Bevat image_resources laaggegevens?

Nee. image_resources bevat resourceblokken op documentniveau (geparseerd uit de PSD-image-resources-sectie). Gegevens op laagniveau worden gelezen via PsdImage.layers — zie Werken met lagen.

Is PsdImage.version de versie van het PSD-bestandsformaat?

Nee. PsdImage.version rapporteert een intern Aspose.PSD-compatibel API-versienummer (momenteel 6) — het heeft niets te maken met of het geladen bestand PSD of PSB is. De setter accepteert alleen de waarde 6; elke andere waarde veroorzaakt ValueError.

Zie ook

 Nederlands