Ich bin auf der Suche nach einer Möglichkeit, die Farbe eines PNG programmgesteuert zu ändern. Bislang verwenden alle Lösungen, die ich gesehen habe, getpixel und gehen Pixel für Pixel durch. Eigentlich möchte ich nur die Vordergrundfarbe eines Bildes mit einem transparenten Hintergrund ändern. Ist das möglich? Gibt es eine Art von Palette, wo die Änderung leicht für alle Pixel einer bestimmten Farbe erreicht werden kann?Ändern Sie die Farbe von PNG-Bild
-2
A
Antwort
1
Ob eine Palette vorhanden ist oder nicht hängt vom PNG-Farbtyp ab. Wenn die color 3 gibt es eine Palette in der PLTE Brocken enthalten ist, und Sie können es programmatisch durch diese Schritte ändern tun:
- Extrakt der PLTE chunk
- Änderung der Eintrag für die Vordergrundfarbe auf den neuen Hintergrund Farbe
- das CRC-Prüfsumme für die PLTE chunk neu berechnen
- wieder einsetzt PLTE Brocken in der Bilddatei
- fügen Sie einen tRNS Klotz, dass Farbe transparent zu machen.
Wenn color 0 oder 2 ist, dann die Vordergrundfarbe transparent durch Hinzufügen eines tRNS Klotz machen kann, aber wenn man die darunter liegende Farbe der Pixel zu einem neuen Hintergrundfarbe ändern möchten, werden Sie tun müssen es Pixel für Pixel, wie Sie bereits beobachtet haben.
Es ist wirklich nicht notwendig, die Vordergrundfarbe zu ändern, obwohl, wenn Sie es transparent machen, ist es nicht wirklich wichtig, was die RGB-Komponenten enthalten.
Verwandte Themen
- 1. Ändern Sie die Farbe von android.support.v7.widget.SearchView
- 2. Ändern Sie die Farbe von Toast
- 3. Ändern Sie die Farbe von Select2 glow
- 4. Ändern Sie die Farbe des Zubehörtyps Swift
- 5. So ändern Sie die Farbe der Statusleiste
- 6. Wie ändern Sie die Farbe eines UIFont?
- 7. Ändern Sie die Farbe eines Schalters
- 8. Wie ändern Sie die GroupStyle-Farbe?
- 9. QTableWidget - Ändern Sie die Farbe der Zeile
- 10. Ändern Sie die Farbe des Alarmdialogs
- 11. Ändern Sie die Farbe der Listenansicht Zeile zu benutzerdefinierten Farbe
- 12. So ändern Sie die Suchvorschläge Text Farbe
- 13. Ändern Sie die Farbe im Menü
- 14. Ändern Sie die Farbe der Ressource
- 15. Ändern Sie die Farbe eines StaticText, wxPython
- 16. Ändern Sie die Farbe der UINavigationBar
- 17. So ändern Sie die Checkbox Farbe programmgesteuert
- 18. Ändern Sie die Farbe der vorgefertigten Instanzen
- 19. So ändern Sie die Farbe der Listeneinträge
- 20. Ändern Sie die Farbe des Legendensymbols highchart
- 21. ändern Sie Textfarbe abhängig von Hintergrundbild/Farbe
- 22. So ändern Sie die Farbe der vertikalen Kopfzeile von QTableWidget
- 23. So ändern Sie die Farbe von Anmerkungstext in Google-Diagrammen
- 24. Ändern Sie die Farbe von TextView nach dem Durchlaufen
- 25. Swift - Ändern Drücken Sie die Farbe von UITableView herunter
- 26. Ändern Sie die Farbe von Zelle zu Zelle in Excel
- 27. Android: Ändern Sie die Farbe von RadioButtons und Kontrollkästchen programmgesteuert
- 28. So ändern Sie die Farbe von Zeichenformen in Android
- 29. So ändern Sie die Farbe von | of JTextField
- 30. Dynamisch ändern Sie die Farbe von div nach Datenbank