Ich habe ein quadratisches Logo und ich muss es runder_korrigieren, habe eine Weile gesucht und den folgenden Code "funktioniert":
%Vor%Dann habe ich das zurückgegebene Bildobjekt gespeichert, aber es hat einen weißen Hintergrund in der Ecke so Wie kann ich den weißen Hintergrund loswerden oder unsichtbar machen? Vielen Dank im Voraus ~
BEARBEITEN: Hier ist der Code von Fraxel, danke ~
%Vor%Es tut mir leid. Ich brauche die Bildform, um Ellipse nicht Rechteck, I.E. das Schreiben Zeug aus dem Bild, und @fraxel, ich kann immer noch die weiße Ecke in dem Bild, das Sie für mich verarbeitet
Stellen Sie zuerst sicher, dass Sie Ihr Bild in einem Format speichern, das Transparenz unterstützt. PNG
does, JPG
nicht ... Unten ist ein ziemlich netter Code, der transparente Ecken hinzufügt. Es funktioniert so:
rad
, mit draw.ellipse()
putalpha()
in Ihr Bild ein.
png
und bewahren Sie so Transparenz. Hier ist der Code:
%Vor%Beispiel gekrümmte Kante Tiger:
Hier ist Ihr Bild, das mit diesem Code bearbeitet wurde und transparente Ecken bietet:
Haben Sie etwas wie image.putalpha(mask)
probiert, um den Alphakanal des Bildes durch die Maske zu ersetzen? Das scheint so zu sein, als würde es tun, was du willst. mask
muss möglicherweise im "L" -Modus sein, damit dies korrekt funktioniert, und image
sollte wahrscheinlich 'RGBA' sein, wird aber möglicherweise automatisch für Sie konvertiert.
Die beste Antwort hier bietet einige gute Beispiele: Wie erstelle ich kreisförmige Thumbnails mit PIL?
Ihr Maskenbild sieht gut aus, aber ich denke, Sie möchten "weiß" und "schwarz" tauschen, also haben Sie ein weißes abgerundetes Rechteck, genau die Form, auf der Ihr endgültiges Bild sein soll, auf schwarzem Hintergrund. Sie werden wahrscheinlich auch den "L" -Modus (Graustufen) verwenden müssen.
Sobald Sie dieses Bild haben, können Sie return ImageChops.add(mask, image)
durch image.putalpha(mask); return image
ersetzen und das Bild sollte nur in den schwarzen Bereichen der Maske transparent sein.
Sie müssen möglicherweise zuerst das Bild mit image.convert('RGBA')
konvertieren, aber ich denke, dass dies in späteren Versionen von PIL nicht notwendig ist, macht es automatisch.
Etwas wie: (Entschuldigung, ich kann das jetzt nicht testen)
%Vor%Tags und Links python python-imaging-library transparent rounded-corners