Penso che questo problema non sia legato a Zope. Ciò nonostante, spiegherò cosa sto cercando di fare:Python PIL "IOError: file immagine troncato" con immagini grandi
Sto usando un PUT_factory in Zope per caricare le immagini su ZODB per FTP. L'immagine caricata viene salvata come immagine Zope all'interno di un oggetto contenitore appena creato. Funziona bene, ma voglio ridimensionare l'immagine se supera una certa dimensione (larghezza e altezza). Quindi sto usando la funzione di anteprima di PIL per ridimensionarli, cioè fino a 200x200. Funziona bene finché le immagini caricate sono relativamente piccole. Non ho controllato il limite esatto, ma 976x1296px è ancora ok.
Con le immagini più grandi ottengo:
Module PIL.Image, line 1559, in thumbnail
Module PIL.ImageFile, line 201, in load
IOError: image file is truncated (nn bytes not processed).
Ho provato un sacco di immagini JPEG della mia macchina fotografica. Non penso che siano tutti troncati.
Ecco il mio codice:
if img and img.meta_type == 'Image':
pilImg = PIL.Image.open(StringIO(str(img.data)))
elif imgData:
pilImg = PIL.Image.open(StringIO(imgData))
pilImg.thumbnail((width, height), PIL.Image.ANTIALIAS)
Come sto usando un PUT_factory, non ho un oggetto file, sto utilizzando i dati grezzi dalla fabbrica o di un creato in precedenza (Zope) Oggetto immagine.
Ho sentito dire che il PIL gestisce i dati delle immagini in modo diverso quando viene superata una certa dimensione, ma non so come regolare il mio codice. O è collegato al caricamento pigro del PIL?
Hai mai risolto questo problema? –
no, non ho :( – Rastaf