Rdzeń API

Podstawowe API

PsdImage jest punktem wejścia do ładowania, przeglądania i zapisywania dokumentów PSD/PSB. Rozszerza abstrakcyjną klasę bazową Image, która deklaruje jedynie load() — reszta powierzchni dokumentu (width, height, save(), obsługa menedżera kontekstu) jest zdefiniowana w samym PsdImage, a nie dziedziczona.


Ładowanie i zapisywanie dokumentów

Image.load() przyjmuje ścieżkę pliku lub strumień i zwraca Image; dla wejścia PSD/PSB jest to zawsze PsdImage, więc powierzchnia dokumentu jest od razu dostępna bez jawnego rzutowania. PsdImage obsługuje także instrukcję with do automatycznego czyszczenia, a PsdImage.save() zapisuje dokument z powrotem do ścieżki pliku lub strumienia.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load(input_path) as image:
    # ... inspect or edit ...
    image.save(output_path)

Właściwości nagłówka dokumentu

PsdImage udostępnia przetworzony nagłówek jako właściwości typowane: width, height, bits_per_channel, color_mode, version, compression, size i is_flatten.

print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")

Zasoby obrazów

PsdImage.image_resources zwraca przetworzoną listę obiektów ResourceBlock. W tej wersji FOSS, image_resources, global_layer_resources, active_layer i has_transparency_data mogą być odczytywane, ale nie mogą być ponownie przypisywane — ich settery rzucają NotSupportedException.

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

Porady i najlepsze praktyki

  • Image.load() już zwraca PsdImage dla wejścia PSD/PSB — nie jest potrzebna konwersja, w przeciwieństwie do niektórych innych portów tej biblioteki w innych językach.
  • Użyj instrukcji with; PsdImage obsługuje protokół menedżera kontekstu do sprzątania.
  • Traktuj image_resources, global_layer_resources, active_layer i has_transparency_data jako tylko do odczytu, mimo że udostępniają metodę ustawiającą.
  • Sprawdź image.layer_count przed indeksowaniem image.layers — spłaszczony dokument może nie mieć warstw.

Typowe problemy

ProblemPrzyczynaRozwiązanie
NotSupportedException przy ustawianiu image_resourcesTa właściwość jest tylko do odczytu w wersji FOSS, pomimo że ma setterOdczytaj wartość; nie próbuj jej ponownie przypisywać
Pusta lista image.layers w spłaszczonym dokumencieis_flatten jest True i dokument nie ma parsowanych warstwSprawdź image.layer_count (lub image.is_flatten) przed indeksowaniem do image.layers

FAQ

Czy wczytanie dokumentu PSD dekoduje dane pikseli?

Nie. PsdImage.load() analizuje nagłówek dokumentu, metadane warstw i zasoby bez dekodowania lub renderowania danych pikseli.

Czy mogę przekonwertować plik PSD na inny format obrazu?

Nie. Ta biblioteka ładuje, przegląda i zapisuje wyłącznie dokumenty PSD/PSB — nie renderuje danych pikseli ani nie konwertuje na inne formaty obrazu.


API Reference Podsumowanie

Klasa/MetodaOpis
Image.load(path) / Image.load(stream)Ładuje dokument PSD lub PSB
PsdImage.save(path) / PsdImage.save(stream)Zapisuje dokument
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flattenWłaściwości nagłówka dokumentu
PsdImage.image_resourcesPrzetworzone bloki zasobów obrazu (tylko do odczytu)

Zobacz także

 Polski