2012-04-25 13 views
6

Io uso python per salvare i file JPEG in una qualità più piccoloPython PIL jpeg qualità

im = Image.open(file) 
im.save(cached_file, quality=80, optimize=True, progressive=True) 

In alcune immagini, tuttavia, la dimensione del file della nuova immagine è più grande dell'originale del Come può accadere questo? Grazie

+0

Fornire un esempio dove questo è il caso sarebbe utile. –

risposta

7

È possibile che l'immagine originale sia stata salvata con la qualità < 80? Quindi, stai praticamente usando più spazio per salvare gli artefatti della ricostruzione?

+0

C'è un modo per determinare la qualità dell'immagine originale e procedere con il processo solo se è più piccolo? – Thomas

+1

Ho appena visto alcuni documenti del PIL - http://www.pythonware.com/library/pil/handbook/format-jpeg.htm Sembra che la qualità predefinita sia 75, il che suggerisce che se leggi un'immagine erano stati salvati dal PIL senza una specifica di qualità, potrebbe verificarsi la situazione che ho ipotizzato. Apparentemente, durante la lettura di un JPEG, la qualità non è nota. Sospetto che l'unico modo per sapere in anticipo sia quello di saperne di più sulla codifica JPEG. Forse staresti bene a confrontare il nuovo file salvato con l'originale e poi decidere quale mantenere? – user1245262

+0

In realtà, ho pensato a ciò che stai suggerendo e probabilmente lo seguirò, ma ho pensato di chiedere se c'è un modo più ottimale per gestirlo. Grazie – Thomas

Problemi correlati