Wie schneidet man den leeren Randbereich eines PNG-Bildes ab und verkleinert es mit Python auf seine Mindestgröße?
Ich hatte heute das gleiche Problem. Hier ist meine Lösung, um die transparenten Grenzen zu beschneiden. Werfen Sie dieses Skript einfach in Ihren Ordner mit Ihren Batch-PNG-Dateien:
%Vor%
PIL getbbox funktioniert für mich
im.getbbox () = & gt; 4-Tupel oder Kein
Berechnet die Begrenzungsbox des
Nicht-Null-Regionen in dem Bild. Das
Bounding Box wird als 4-Tupel zurückgegeben
Definieren der linken, oberen, rechten und
untere Pixelkoordinate. Wenn das Bild
ist völlig leer, diese Methode
gibt None zurück.
Code Beispiel, das ich ausprobiert habe, habe ich mit bmp getestet, aber es sollte auch für png funktionieren.
%Vor%
___ tag123image ___ Das Bild-Tag ist für Fragen im Zusammenhang mit dem Laden, Formatieren, Speichern, Komprimieren und Anzeigen von Bildern im Kontext des Quellcodes gedacht. Dieses Tag sollte auch zur Unterstützung verschiedener Bildbibliotheken verwendet werden. Fragen zu bestimmten Bildformaten sollten die Tags für diese Formate enthalten.
___ qstnhdr ___ Schneidet ein PNG-Bild auf seine minimale Größe
___ tag123png ___ PNG (Portable Network Graphics) ist ein Bilddateiformat zum Speichern von Rastergrafiken. Es ist mit der Dateierweiterung ".png" verknüpft. Verwenden Sie dieses Tag für Fragen zu diesem bestimmten Format.
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend.
___ answer1905455 ___
Sie können PIL verwenden, um Zeilen und Spalten Ihres Bildes zu finden, die ausschließlich aus Ihrer Rahmenfarbe bestehen.
Mit diesen Informationen können Sie die Ausdehnung des eingelegten Bilds leicht bestimmen.
Mit PIL können Sie dann das Bild zuschneiden, um den Rand zu entfernen.
Ich denke, es ist notwendig, @Frank Kruegers Antwort zu ergänzen. Er macht einen guten Punkt, aber es enthält nicht, wie man zusätzliche Randfarbe aus einem Bild richtig zuschneidet. Ich fand das hier . Insbesondere fand ich das nützlich:
%Vor%