[Python] PIL save
Daniele Zambelli
daniele.zambelli a gmail.com
Gio 26 Dic 2013 20:13:31 CET
Salve a tutti!
Sto cercando di far funzionare sotto Python 3 un metodo che va (quasi
bene) sotto Python 2.7.
Riassumendo:
ho un oggetto che crea un canvas (di tkinter), lo salva in formato .ps
e poi uso la libreria PIL per convertirlo in .png:
from PIL.Image import open as imopen
[...]
def save(self, filename):
"""Save graphic window to png or ps file."""
nfps = filename+'.ps'
nfpng = filename+'.png'
print(nfps, nfpng)
self._canvas.postscript(file=nfps)
imopen(nfps).save(nfpng)
os.remove(nfps)
Prima domanda:
In tkinter non c'è un modo semplice per salvare un canvas in formato .png?
Seconda domanda:
Chiamo il metodo con il comando:
[...]
p.save('esagono')
[...]
(dove "p" è un oggetto della classe che contiene "save")
quando il metodo viene eseguito sotto Python 2.7 funziona, qundo lo
eseguo sotto Python 3.3 ottengo:
Traceback (most recent call last):
File "/dati/daniele/linguaggi/python/sorgenti/00_librerie/pygraph/test/test_pycart.py",
line 460, in <module>
test_17()
File "/dati/daniele/linguaggi/python/sorgenti/00_librerie/pygraph/test/test_pycart.py",
line 186, in test_17
p.save('esagono')
File "/usr/lib/python3/dist-packages/pygraph/pycart.py", line 313, in save
imopen(nfps).save(nfpng)
File "/usr/local/lib/python3.3/dist-packages/PIL/Image.py", line 1421, in save
self.load()
File "/usr/local/lib/python3.3/dist-packages/PIL/EpsImagePlugin.py",
line 311, in load
self.im = Ghostscript(self.tile, self.size, self.fp)
File "/usr/local/lib/python3.3/dist-packages/PIL/EpsImagePlugin.py",
line 93, in Ghostscript
gs.write(s)
TypeError: must be str, not bytes
Qualcuno saprebbe darmi qualche indicazione per risolvere il caso?
Grazie
Buone feste e buon anno a tutti.
--
Daniele
www.fugamatematica.blogspot.com
giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
Maggiori informazioni sulla lista
Python