PIL Bild-Modus "P" -> "RGBA"
Dies ist mein Problem:
import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
Gut, bei meinem Bild sieht man den Unterschied.
Meine Frage ist: wie konvertiere ich es richtig?
Bild:
Ergebnis:
HINWEIS: Das Originalbild hat eine semi-transparente glühen, hat das Ergebnis ein solides grünen "glow"
Könntest du erklären, was das problem ist, vielleicht?
Sie nicht wirklich sagen, was der Unterschied ist. Ist das Bild, das Sie vor oder nach?
Es getestet. Sah keinen Unterschied. Was python und pil-version verwenden Sie ?
Siehe dieser Q&A. Lesen Sie beide Antworten und Ihre Kommentare!
FWIW der resultierende RGBA eigentlich einen alpha-layer, der die Transparenz setzen auf genau die gleichen Pixel, wie die in den palettierten Bild. In anderen Worten, die "glow" - Pixel in der palettierten Bild nicht gekennzeichnet werden transparent an alle -- was ich davon ausgehen ist, warum Sie nicht in den RGBA-Ergebnis. Ich habe auch bemerkt, dass ich das glühen sehen, nur wenn ich das Bild in einem browser, aber nicht in der Bild-editor, die ich normalerweise benutze (Photoshop). Das ergibt keinen Sinn und ich bin versucht zu verstehen was vorgeht und warum.
Sie nicht wirklich sagen, was der Unterschied ist. Ist das Bild, das Sie vor oder nach?
Es getestet. Sah keinen Unterschied. Was python und pil-version verwenden Sie ?
Siehe dieser Q&A. Lesen Sie beide Antworten und Ihre Kommentare!
FWIW der resultierende RGBA eigentlich einen alpha-layer, der die Transparenz setzen auf genau die gleichen Pixel, wie die in den palettierten Bild. In anderen Worten, die "glow" - Pixel in der palettierten Bild nicht gekennzeichnet werden transparent an alle -- was ich davon ausgehen ist, warum Sie nicht in den RGBA-Ergebnis. Ich habe auch bemerkt, dass ich das glühen sehen, nur wenn ich das Bild in einem browser, aber nicht in der Bild-editor, die ich normalerweise benutze (Photoshop). Das ergibt keinen Sinn und ich bin versucht zu verstehen was vorgeht und warum.
InformationsquelleAutor mDroidd | 2012-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Problem wurde hier berichtet:
https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode
Im März 2012, ein Kommentar sagt, es ist nun behoben, die Entwickler-version von PIL. Die jüngste Veröffentlichung der version 1.1.7 ist, so dass das Update nicht verfügbar sein, bis 1.2 raus kommt. PIL updates sehr langsam, also nicht erwarten, dass dies bald rauskommen.
InformationsquelleAutor jterrace
Leider Ihr PNG-Bild ist ein Typ, der PIL nicht handhaben sehr gut - ein Palettenfarben-Bild mit alpha-Kanal. Wenn Sie das Bild öffnen, das alpha ist weggeworfen, und es gibt keine Möglichkeit, es wieder zu bekommen.
Diese unterscheidet sich von der üblichen palette der Transparenz, wo ein index in der palette wird gebraucht, um vollständig transparente Pixel.
InformationsquelleAutor Mark Ransom
Könnten Sie
scipy.misc.imread
:Ich denke, das wurde vor kurzem als veraltet markiert von scipy ohne Ersatz. Ich bin derzeit auf mobile in Urlaub, so ist es schwer zu überprüfen, für mich.
InformationsquelleAutor Martin Thoma
Dein problem ist, dass Sie bieten keine Informationen über das, was PIL sollte als Quelle für ALPHA-Kanal.
PIL wird nicht auf seine eigene Beurteilung der Transparenz auf Ihr Bild.
Welcher Teil des Bildes transparent sein soll?
Sorry, aber für mich in beiden Bildern identisch Aussehen. Kann Sie daneben auf dem 3. Bild die Teile, die transparent sein soll, mit rot?
InformationsquelleAutor przemo_li