2016-08-01 68 views
0

Im Moment versuche ich ein paar JPG-Dateien und mein Skript ist, um die Größe, wie folgend:Ändern der Größe von Bildern mit Kissen Python

from PIL import Image 

def main(): #{ 

    filename = "amonstercallsmoviestill.jpg" 

    image = Image.open(filename) 
    size = width, height = image.size 

    image.thumbnail((1600,900)) 

    image.show() 

    del image 
#} 

if (__name__ == "__main__"): #{ 

    main() 
#} 

Ich versuche amonstercallsmoviestill.jpg zu (1600,900), um die Größe, sondern es scheint nicht zu funktionieren.

Ich habe versucht mit (300,300) und sie funktionieren, aber jedes Mal, wenn versucht, Thumbnail mit (1600,900) scheint es nicht zu funktionieren.

Vielen Dank!

+0

können Sie näher auf "funktioniert nicht", erhalten Sie einen Fehler? Ist es die falsche Größe? Was passiert ... –

+0

Kein Fehler erscheint. Script läuft und image.show() funktioniert auch. Das Bild wird scheinbar nicht verkleinert. – TheOlDirtyBastard

+0

Wie groß ist das Bild für den Anfang? Ich vermute, dass 'thumbnail' nicht verwendet werden kann, um ein Bild zu vergrößern. Die Dokumentation sagt "Ändert das Bild so, dass es eine Thumbnail-Version von sich selbst enthält, nicht größer als die angegebene Größe", was bedeutet, dass das resultierende Bild viel, viel kleiner als die Größe sein kann, die Sie ihm geben. Hast du es stattdessen mit 'resize' versucht? – Kevin

Antwort

3

thumbnail nur reduziert die Größe eines Bildes. Um es größer zu machen, verwenden Sie stattdessen resize.

image = image.resize((1600, 900), PIL.Image.LANCZOS) 
+0

Vielen Dank für die Antwort Mark! LANCZOS ist im Grunde Antialias richtig? Ich bekomme den folgenden Fehler beim Ausführen dieses - 'NameError: globaler Name' PIL 'ist nicht definiert'. – TheOlDirtyBastard

+0

@TheOlDirtyBastard hängt alles davon ab, wie Sie 'PIL' importiert haben, ich ging direkt von der Dokumentationsseite. Versuchen Sie stattdessen 'Image.LANCZOS'. Ich war sehr angewidert von dem, was ich in dem ursprünglichen PIL-Code für 'ANTIALIAS' gesehen habe, ich hoffe, dass sie, als sie es abzweigten, LANCZOS als Lösung einführten. –

+0

Ja, Sie hatten Recht. Dieser Teil des Codes funktionierte, aber mein Bild wurde immer noch nicht verkleinert. :/ – TheOlDirtyBastard