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:$PYTHONPATHLista kontrolna diagnostyczna
Przed otwarciem zgłoszenia wsparcia, przejrzyj tę listę kontrolną:
- Potwierdź, że plik jest rzeczywiście PSD/PSB — a
PsdLoadExceptiono nieobsługiwanej wersji zazwyczaj oznacza, że plik nie jest prawdziwym dokumentem PSD/PSB. - Sprawdź
NotSupportedException— możesz ustawiać jedną z 7 właściwości tylko do odczytu wymienionych powyżej zamiast ją odczytywać. - Verify
opacityjest w przedziale 0-255, nie 0.0-1.0 ani 0-100. - Utrzymuj wartości ciągów poniżej 255 bajtów przed zapisaniem, aby uniknąć
PsdSaveException. - Call
image.savepo każdej edycji — zmiany wLayerinstancja nie jest zachowywana, dopóki dokument nie zostanie zapisany.