Rozwiązywanie problemów Aspose.PSD FOSS for Python

Rozwiązywanie problemów Aspose.PSD FOSS for Python

Rozwiązywanie problemów Aspose.PSD FOSS dla Python

Ta strona opisuje najczęstsze problemy napotykane podczas ładowania, przeglądania i zapisywania dokumentów PSD/PSB przy użyciu Aspose.PSD FOSS dla Python.


Problemy z ładowaniem

PsdLoadException z komunikatem o nieobsługiwanej wersji

Pole wersji PSD zadeklarowane w pliku nie jest ani standardową wartością PSD, ani wartością dużego dokumentu PSB. Upewnij się, że plik jest autentycznym, nieuszkodzonym dokumentem PSD/PSB przed jego załadowaniem:

try:
    image = PsdImage.load("input.psd")
except PsdLoadException as ex:
    print(f"Not a valid PSD/PSB file: {ex}")

PsdLoadException o długości sekcji przekraczającej granicę

Wewnętrzne pola długości w pliku nie są zgodne z jego rzeczywistym rozmiarem — zazwyczaj oznacza to, że plik jest obcięty lub uszkodzony, a nie że używa nieobsługiwanej, ale w innym wypadku prawidłowej struktury. Wyeksportuj ponownie plik z aplikacji źródłowej i spróbuj ponownie.


Problemy z zapisywaniem

PsdSaveException dotyczący długości łańcucha Pascal

Wartość łańcucha — najczęściej nazwa warstwy lub zasobu — przekracza 255 bajtów, co jest maksymalnym rozmiarem, jaki może zakodować pole łańcucha Pascal w formacie PSD:

layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")

Problemy z edycją

NotSupportedException przy ustawianiu właściwości

W tej wersji FOSS kilka właściwości jest tylko do odczytu. W PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. W Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Traktuj je jako tylko do odczytu — nie przypisuj im wartości.

Krycie warstwy wygląda nieprawidłowo po jego ustawieniu

Layer.opacity jest konwencjonalnie wartością od 0 do 255, a nie ułamkiem 0.0-1.0 ani procentem:

layer.opacity = 200  # approximately 78% opaque, not 200%

Usunięcie warstwy nie ma efektu

PsdImage.layers ma działający setter na poziomie kolekcji, ale pojedyncze elementy listy nie mogą być po prostu usunięte w miejscu — przypisz ponownie całą przefiltrowaną listę:

image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]

Problemy z instalacją

Nie znaleziono pakietu

Potwierdź dokładną tożsamość pakietu:

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

Lista kontrolna diagnostyczna

Przed otwarciem zgłoszenia wsparcia, przejrzyj tę listę kontrolną:

  1. Potwierdź, że plik jest rzeczywiście PSD/PSB — a PsdLoadException o nieobsługiwanej wersji zazwyczaj oznacza, że plik nie jest prawdziwym dokumentem PSD/PSB.
  2. Sprawdź NotSupportedException — możesz ustawiać jedną z 7 właściwości tylko do odczytu wymienionych powyżej zamiast ją odczytywać.
  3. Verify opacity jest w przedziale 0-255, nie 0.0-1.0 ani 0-100.
  4. Utrzymuj wartości ciągów poniżej 255 bajtów przed zapisaniem, aby uniknąć PsdSaveException.
  5. Call image.save po każdej edycji — zmiany w Layer instancja nie jest zachowywana, dopóki dokument nie zostanie zapisany.

Zobacz także

 Polski