Introductie

Aspose.PSD FOSS voor Python is een nieuwe open-source bibliotheek voor het werken met PSD- en PSB-bestanden (Photoshop large document) vanuit Python-code. Het wordt uitgebracht onder de MIT-licentie, heeft geen externe native afhankelijkheden, en vereist alleen de Python standaardbibliotheek tijdens runtime. Het pakket wordt geïmporteerd als aspose_psd_foss.

De bibliotheek is georganiseerd rond de PsdImage-klasse, die de abstracte Image-basisklasse uitbreidt, en de Layer-klasse. Image.load() / PsdImage.load() laden een document vanaf een bestandspad of een stream, waarbij header-informatie (width, height, color_mode, version, compression) en de geparseerde layers-collectie worden blootgelegd; PsdImage.save() schrijft het document terug naar een bestand of stream. Beide klassen ondersteunen de with-instructie voor automatische opruiming. Elke Layer exposeert zijn eigen metadata — name, bounds, is_visible, opacity, clipping, blend_mode_key, en kanaal/maskerinformatie — en een subset van deze eigenschappen kan ter plaatse worden gewijzigd en terug naar het bestand worden opgeslagen.

Deze release is bedoeld voor ontwikkelaars die PSD/PSB-bestanden binnen een Python-codebase moeten inspecteren of beperkte metadata-bewerkingen moeten uitvoeren zonder een commerciële licentie — asset-pipeline-tools die rapporteren over de laagstructuur, build-scripts die lagen hernoemen of de zichtbaarheid van lagen schakelen vóór overdracht, of test-fixtures die PSD-header- en laaggegevens moeten lezen zonder een volledige renderengine. De bibliotheek rendert geen pixelgegevens en converteert PSD/PSB niet naar andere afbeeldingsformaten — het is een metadata-gerichte lezer/schrijver voor het PSD/PSB-containerformaat.


Wat is inbegrepen

Documentinspectie

PsdImage.load() parseert de header van een PSD- of PSB-bestand naar getypeerde eigenschappen — width, height, bits_per_channel, color_mode, version, compression, size en is_flatten — zonder pixelgegevens te decoderen.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}")
    print(f"ColorMode: {image.color_mode}, Version: {image.version}")
    print(f"Layers: {image.layer_count}, Compression: {image.compression}")

Laagmetadata

Elke invoer in PsdImage.layers is een Layer die zijn eigen grenzen, zichtbaarheid, dekking, bijsnijden en mengmodusmetadata blootlegt.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    for layer in image.layers:
        print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")

Ondersteunde metadata-bewerkingen

Een subset van laageigenschappen kan ter plaatse worden gewijzigd en teruggeschreven met PsdImage.save(): naam, zichtbaarheid, dekking, bijsnijden, mengmodus-sleutel, en de vier randkanten.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("input.psd") as image:
    layer = image.layers[0]
    layer.name = f"{layer.name} (edited)"
    layer.is_visible = not layer.is_visible
    layer.opacity = 128
    layer.blend_mode_key = BlendMode.MULTIPLY
    image.save("output.psd")

Snelstart

Installeer het pakket, laad vervolgens een PSD- of PSB-bestand, inspecteer de lagen, en sla het opnieuw op:

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
from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")

    for layer in image.layers:
        print(f"  {layer.name}: {layer.bounds}")

    image.save("output.psd")

Ondersteunde formaten

FormaatExtensieLezenSchrijven
PSDpsd✓✓
PSBpsb✓✓

Open source & licenties

Aspose.PSD FOSS voor Python is gelicentieerd onder de MIT-licentie en mag worden gebruikt in commerciële producten zonder royalty’s, zonder evaluatiewatermerk of gebruikslimiet.

De bibliotheek heeft geen enkele native afhankelijkheid van derden — alleen de Python standaardbibliotheek is vereist tijdens runtime.


Aan de slag

Gerelateerde bronnen