Füllfarbe von PIL Zuschneiden/eine Vorschau bei
Nehme ich eine image-Datei und eine Vorschau bei und schneiden Sie es mit den folgenden PIL-code:
image = Image.open(filename)
image.thumbnail(size, Image.ANTIALIAS)
image_size = image.size
thumb = image.crop( (0, 0, size[0], size[1]) )
offset_x = max( (size[0] - image_size[0]) / 2, 0 )
offset_y = max( (size[1] - image_size[1]) / 2, 0 )
thumb = ImageChops.offset(thumb, offset_x, offset_y)
thumb.convert('RGBA').save(filename, 'JPEG')
Diese funktioniert Super, außer wenn das Bild nicht das gleiche Seitenverhältnis, der Unterschied ist gefüllt mit einer schwarzen Farbe (oder vielleicht ein alpha-Kanal?). Ich bin ok mit der Füllung, ich möchte nur, um in der Lage sein wählen Sie die Füllfarbe -- oder besser noch einen alpha-Kanal.
Ausgabe Beispiel:
Wie kann ich angeben, die Füllfarbe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Veränderte ich den code nur ein bisschen zu erlauben, für Sie geben Sie Ihre eigene Hintergrundfarbe, einschließlich der Transparenz.
Der code lädt das angegebene Bild in eine PIL.Bild-Objekt, erzeugt das thumbnail aus der gegebenen Größe, und fügt dann das Bild in ein anderes, volle Größe Oberfläche.
(Beachten Sie, dass das Tupel verwendet für die Farbe, können auch alle RGBA-Wert, ich habe gerade verwendet weiß mit einem alpha/Transparenz 0.)
Sein ein bisschen einfacher zu
paste
Ihre re-size-thumbnail-Bild auf ein neues Bild, das ist die Farbe (und alpha-Wert), die Sie wollen.Können Sie ein Bild zu erstellen, und speicfy seine Farbe in ein
RGBA
Tupel wie diese:Hier gibt es keine Transparenz, wie die alpha-band ist auf 255 gesetzt. Aber der hintergrund rot sein. Mit diesem Bild zum einfügen auf die wir erstellen thumbnails mit jeder Farbe wie diese:
Wenn wir das alpha-band zu
0
können wirpaste
auf ein transparentes Bild, und dieses:Beispiel-code: