0

Ich arbeite an einem Skript, das ein Bild skaliert und optimiert (Iphone Bilder in diesem Fall), um auf einer Website verwendet zu werden. Bisher habe ich dieses einfache Skript geschrieben, das zu einer Verringerung der Dateigröße um etwa 35% führt, aber ich hatte gehofft, dass ich die Größe noch weiter reduzieren könnte. Gibt es eine Möglichkeit, dieses Skript mehr zu optimieren? Jede Hilfe wird sehr geschätzt!PIL Bildkomprimierung

from PIL import Image 

img = Image.open('file location') 
newImage = img.resize((1024, 768), Image.ANTIALIAS)   

newImage.save('new file location', optimize=True, quality=95) 

newImage.show()            
+1

Eine Option wäre, eine kleinere Größe und "Qualität" auf 85 oder 75 zu setzen. – srig

+0

Ich habe versucht, aber das Ergebnis ist leider minimal. – Stefan

+0

In Photoshop scheint ich die besten Größenreduktionen zu erhalten, indem ich Bilder mit 32 oder 64 Farben palettiert (5 bis 6 Bits pro Komponente) und sie dann als .PNG oder .GIF Bilder speichere. Ich glaube, Sie können die gleichen Operationen mit 'PIL'/Kissen machen. Was ist der Verwendungszweck der neuen Bilder? – martineau

Antwort

1

Sie könnten versuchen, Guetzli Encoders Google mit pyguetzli, erzeugt er in der Regel kleinere JPEG-Datei, sondern nimmt eine beträchtliche Menge an Zeit, vergleichen:

  • original: 9,4 Mio.
  • pil_1024 * 768_q95.jpeg : 638K
  • pil_1024 * 768_q85.jpeg: 404K
  • guetzli_1024 * 768_q95.jpg: 376K

Original JPEG-Datei ist von wiki common, von Diego Delso, CC BY-SA 4.0.

+0

Ich habe versucht, die pyguetzli-Bibliothek (sieht vielversprechend), aber beim Versuch, mein Skript auszuführen, bekomme ich die folgende Fehlermeldung: 'ImportError: dlopen (/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 /site-packages/pyguetzli/_guetzli.abi3.so, 2): Symbol nicht gefunden: __ZN7guetzli7ProcessERKNS_6ParamsEPNS_12ProcessStatsERKSsPSs Referenziert von: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyguetzli/ _guetzli.abi3.so Erwartet in: flacher Namespace in/Library/Frameworks/Python.framework/Versionen/3.6/lib/python3.6/site-packages/pyguetzli/_guetzli.abi3.so' – Stefan

+0

@Stefan scheint es dort sind Probleme mit Linker auf Ihrem Computer, könnten Sie Problem bei [Pyguetzli Github] (https://github.com/wanadev/pyguetzli/issues) berichten. – georgexsh

+0

Ich werde weitermachen und das tun. Hoffentlich kann das bald gelöst werden, aufgeregt, diese Methode zu versuchen! Nochmals vielen Dank für Ihre Hilfe! – Stefan