Lo so, è una vecchia domanda ma ecco come l'ho risolto in Ubuntu, nel caso qualcuno abbia lo stesso problema e non voglia installare imagemagick (che comunque non risolve la causa principale del problema).
Il visualizzatore predefinito su Ubuntu può essere avviato utilizzando il comando "eog" nel terminale. Il cuscino, per impostazione predefinita, cerca solo i comandi "xv" e "display", quest'ultimo fornito da imagemagick. Pertanto, se installi imagemagick, la chiamata "display" aprirà effettivamente l'immagine. Ma perché non usare lo spettatore che abbiamo già?
Il codice Python per aprire il visualizzatore può essere trovato in lib/python3.4/site-packages/PIL/ImageShow.py (o l'equivalente della tua installazione Python). Scorrere verso il basso al di sotto della linea # 155 e trovare il blocco di codice dice:
class DisplayViewer(UnixViewer):
def get_command_ex(self, file, **options):
command = executable = "display"
return command, executable
if which("display"):
register(DisplayViewer)
copia che blocco e incollarlo proprio sotto, cambiando il "display" comando per comando di Ubuntu "eog":
class DisplayViewer(UnixViewer):
def get_command_ex(self, file, **options):
command = executable = "eog"
return command, executable
if which("eog"):
register(DisplayViewer)
Dopo aver salvato ImageShow.py, il cuscino dovrebbe mostrare correttamente() le immagini nel visualizzatore predefinito.
fonte
2015-01-21 14:39:38
Qual è l'errore/effetto? –
Qual è il tuo sistema operativo e la versione di Python? Vedi qualche messaggio di errore? – piokuc
Molto probabilmente questo è perché non hai un visualizzatore di immagini predefinito nel tuo sistema operativo, supponendo che tu stia utilizzando Linux. PIL dipende molto dal tuo sistema operativo per "renderizzare" la tua immagine. Verifica se questo è un approccio migliore se vuoi solo visualizzare un'immagine e accedere ai dati dell'immagine: http://stackoverflow.com/questions/11390596/how-to-display-image-in-pygame – Torxed