Konvertieren Sie png in Farbe einzelne Farbe
Ich bin das arbeiten mit Bitmap-C# und Frage mich, wie konvertieren Sie eine Farbe png-Bild aus nur einer Farbe. Ich will alle sichtbaren Farben im Bild werden weiß. Die Teile, die transparent sind, sollte transparent bleiben. Ich werde diese anzeigen lassen, gegen einen grauen hintergrund.
- möglich, Duplikat der GDI+: Setze alle Pixel, die Farbe Beibehaltung der vorhandenen alpha-Wert
- Ist es etwas, was ich hinzufügen könnte, auf meine Antwort, da Sie noch nicht akzeptiert keine Antwort?
- Hi und sorry für die späte Antwort. Ich habe versucht den code jetzt und ich kann nicht damit es funktioniert. Alle meine Pixel wird weiß, und es nicht lassen Sie die transparenten Pixel des png ist intakt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das Bild nicht verwenden alpha-Kanal für Transparenz dann Folgendes tun:
Den anderen Antworten war hilfreich und hat mich gehen, vielen Dank. Ich konnte nicht machen Sie zu arbeiten, obwohl, nicht sicher, warum. Aber ich fand auch heraus, dass ich wollte, um die original-alpha-Wert des pixels, wodurch die Kanten glatt. Dies ist, was ich kam mit.
Hier ist ein screen-dump von dem Ergebnis vergrößert ein paar mal (original oben):
(Quelle: codeodyssey.se)
SetPixel
ist nur über den langsamsten möglichen Weg, das zu tun. Sie können eineColorMatrix
statt:using System.Drawing;
undusing System.Drawing.Imaging;
sind vorhanden.versuchen folgenden code:
PS: das ist nicht getestet und in keiner Weise optimiert