Python içinde Aspose.PSD FOSS Core API ile Nasıl Çalışılır
Aspose.PSD FOSS for Python PSD/PSB belge yapısını PsdImage aracılığıyla, Image sınıfının bir alt sınıfı olarak, yükler ve inceler. Bu makale bir belgenin yüklenmesini, başlığının ve görüntü kaynaklarının okunmasını ve diske geri kaydedilmesini kapsar.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
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:$PYTHONPATHAdım 2: Gerekli Sınıfları İçeri Aktarın
PsdImage, bu kılavuz boyunca kullanılan giriş noktasıdır:
from aspose_psd_foss.psdimage import PsdImageAdım 3: Bir PSD/PSB Belgesi Yükle
PsdImage.load(), bir dosya yolundan veya bir akıştan belge açar:
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load("input.psd")Adım 4: Belge Başlığını İncele
PsdImage, ayrıştırılmış belgelerden okunan başlık alanlarını gösterir: width, height, bits_per_channel, color_mode (ColorModes değeri), ve compression (CompressionMethod değeri):
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 değerleri BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE ve LAB‘dir. CompressionMethod değerleri RAW, RLE, ZIP_WITHOUT_PREDICTION ve ZIP_WITH_PREDICTION‘tir.
Adım 5: Görüntü Kaynak Bloklarını Oku
image_resources, belgenin ayrıştırılmış ResourceBlock girişlerini döndürür. Her blok id, name ve size öğelerini gösterir:
for resource in image.image_resources:
print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")image_resources bu FOSS yapısında yalnızca okunabilir — ona atama yapmak bir hata oluşturur NotSupportedException (bilinen sınırlamalara bakın FAQ).
Adım 6: Belgeyi Kaydet
Belgeyi diske geri yazın, ardından görüntünün kaynaklarını serbest bırakın:
image.save("output.psd")
image.dispose()Yaygın Sorunlar ve Çözümler
PsdLoadException dosya yüklenirken. Girdi geçerli bir PSD/PSB belgesi değil veya başlığı doğrulama hatası aldı. Yüklemeden önce dosyanın gerçek bir PSD/PSB dosyası olduğunu doğrulayın.
NotSupportedException ayarlarken image_resources or global_layer_resources. Bu ayarlayıcılar bu FOSS yapısında desteklenmiyor. Şöyle ele alın image_resources yalnızca okunur olarak.
Sık Sorulan Sorular
Bir PSD dosyasını dosya yolu yerine bir akıştan yükleyebilir miyim?
Evet — PsdImage.load() bir dosya yolu dizesi ya da okunabilir bir akışı (io.BytesIO/io.BufferedIOBase) kabul eder.
image_resources katman verilerini içeriyor mu?
Hayır. image_resources belge düzeyindeki kaynak bloklarını tutar (PSD görüntü kaynakları bölümünden ayrıştırılır). Katman düzeyindeki veriler şunun aracılığıyla okunur PsdImage.layers — bakınız Katmanlarla Çalışma.
PsdImage.version PSD dosya formatı sürümü mü?
Hayır. PsdImage.version, dahili bir Aspose.PSD-uyumlu API sürüm numarasını (şu anda 6) rapor eder — bu, yüklenen dosyanın PSD mi PSB mi olduğuyla ilgili değildir. Ayarlayıcısı yalnızca 6 değerini kabul eder; başka bir değer ValueError hatasına yol açar.