Füllfarbe von PIL Cropping / Thumbnailing

7

Ich nehme eine Bilddatei und thumbnaile und beschneide sie mit dem folgenden PIL-Code:

%Vor%

Das funktioniert großartig, außer wenn das Bild nicht das gleiche Seitenverhältnis hat, wird der Unterschied mit einer schwarzen Farbe (oder vielleicht einem Alpha-Kanal?) ausgefüllt. Mir geht es gut mit der Füllung, ich möchte nur die Füllfarbe auswählen - oder besser noch einen Alpha-Kanal.

Ausgabebeispiel:

Wie kann ich die Füllfarbe angeben?

    
Erik 26.07.2012, 06:59
quelle

2 Antworten

13

Ich habe den Code ein wenig geändert, damit Sie Ihre eigene Hintergrundfarbe einschließlich Transparenz festlegen können. Der Code lädt das angegebene Bild in ein PIL.Image-Objekt, generiert das Miniaturbild aus der angegebenen Größe und fügt das Bild anschließend in eine andere, vollformatige Oberfläche ein. (Beachten Sie, dass das für die Farbe verwendete Tupel auch ein beliebiger RGBA-Wert sein kann, ich habe gerade Weiß mit einer Alpha / Transparenz von 0 verwendet.)

%Vor%     
eli 29.07.2012, 09:18
quelle
11

Es ist ein wenig einfacher, paste des vergrößerten Miniaturbildes auf ein neues Bild zu setzen, das ist die gewünschte Farbe (und der Alpha-Wert).

Sie können ein Bild erstellen und seine Farbe in einem RGBA Tupel wie folgt angeben:

%Vor%

Hier gibt es keine Transparenz, da das Alpha-Band auf 255 eingestellt ist. Aber der Hintergrund wird rot sein. Mit diesem Bild können wir Thumbnails mit folgender Farbe erstellen:

Wenn wir das Alpha-Band auf 0 setzen, können wir paste auf ein transparentes Bild setzen und erhalten:

Beispielcode:

%Vor%     
fraxel 29.07.2012 10:00
quelle

Tags und Links