Einfach: Bilder mit C# in Graustufen oder Sepia konvertieren

Das .NET-Framework stellt Entwicklern zahlreiche Bibliotheken zur Verfügung, mit denen sie Bilder erzeugen und modifizieren können. Der Artikel stellt zwei Methoden vor, wie sich Bilder aus C# in Graustufen und Sepiaton konvertieren lassen.

Die Bildbearbeitungsbibliotheken von .NET sind eine tolle Sache. So kann man seine Programme simpel um vielfältige Modifikationsmöglichkeiten erweitern. Der Artikel zeigt, wie man die Bildfarben aus C# heraus modifiziert und aus einer farbigen Aufnahme ein klassisches Schwarzweiß-Bild oder eine angegilbte Sepia-Fotografie macht.

Bevor es mit dem Code losgeht, soll aber ein Blick auf die verwendeten Algorithmen geworfen werden, um zu erklären, wie das Bild konvertiert wird. Jeder Algorithmus nimmt eine Farbe als Eingabe und berechnet dann die resultierende Farbe. Für Graustufen ist dies relativ einfach. Es ist lediglich der Helligkeitswert der Farbe nötig, um einen Grauton zu erzeugen. Das Folgende ist eine sehr elementare Implementierung dieses Verfahrens.


outputColor = (inputRed + inputGreen + inputBlue) / 3

Anschließend werden alle drei RGB-Werte mit "outputColor" gleichgesetzt.

Sepiaton ist schon etwas komplexer, weil nun nicht mehr mit Grautönen gearbeitet wird. Daher lässt sich auch nicht mehr der Durchschnitt der anderen Farben für die Ausgabefarbe verwenden. Sepiaton erfordert eine Berechnung, die der oben gezeigten jedoch sehr ähnlich ist.


outputRed = (inputRed * .393) + (inputGreen *.769) + (inputBlue * .189)
outputGreen = (inputRed * .349) + (inputGreen *.686) + (inputBlue * .168)
outputBlue = (inputRed * .272) + (inputGreen *.534) + (inputBlue * .131)

Falls einer dieser Ausgabewerte größer als 255 ist, wird er einfach auf 255 gesetzt. Diese spezifischen Werte sind die Werte für Sepiaton, wie sie Microsoft empfiehlt.

Die folgenden zwei Beispiele stellen gängigere Methoden zur Konvertierung von Bildern in Graustufen oder Sepiaton dar. Es gibt zwar auch andere Möglichkeiten, das gleiche Ergebnis zu erzielen, doch diese zwei Methoden arbeiten nicht mit unsicheren Codeblöcken oder externen Aufrufen an Windows APIs, wie andere Verfahren das tun. Daher sind diese Lösungen sauber und leicht anzupassen.

Die erste Konvertierungsmethode

Die erste Konvertierungsmethode ist das SetPixel-Verfahren. Dafür wird eine Bitmap erzeugt. Für jedes Pixel der Bitmap wird die Farbe berechnet, zu der es geändert werden soll. Anschließend ändert Bitmap.SetPixel das Pixel auf die gewünschte Farbe. Es folgt ein Beispiel für diese Methode:

Fanden Sie diesen Artikel nützlich?
7 von 8 Lesern fanden diesen Artikel nützlich.

Aktuelle Job-Angebote

ZDNet.de Live

Patch ...

Patchday: Microsoft stopft kritische Lecks t.co/...

10.02.12, 11:30 von silicon_de
New ...

New Yorker Staatsanwaltschaft lässt Kartellklage gegen Intel fallen t.co/...

10.02.12, 11:30 von zdnet_de
Vom ...

Vom Fluch der Standards t.co/...

10.02.12, 11:20 von silicon_de
Oracl ...

Oracle will Taleo kaufen t.co/...

10.02.12, 11:10 von silicon_de
Pakis ...

Pakistan blocks 13,000 'obscene' sites. t.co/...

10.02.12, 10:54 von zdnetasia
Medio ...

Medion und NEC bescheren Lenovo 44 Prozent Umsatzplus t.co/...

10.02.12, 10:40 von zdnet_de
The ...

The future of browsing...[video] t.co/...

10.02.12, 10:35 von ZDNet
Eine ...

Eine Mitteilung betreffs des Teilens t.co/...

10.02.12, 10:20 von silicon_de
Socia ...

Social Networker bei Freunden wählerisch t.co/...

10.02.12, 10:20 von silicon_de
Micro ...

Microsoft kündigt Patches für Windows, Office und Internet Explorer an t.co/...

10.02.12, 09:50 von zdnet_de
Forsc ...

Forscher knacken PIN-Verschlüsselung von Google Wallet t.co/...

10.02.12, 09:30 von zdnet_de
Analy ...

Analyst: Lenovo set to dethrone HP in PC market. t.co/...

10.02.12, 09:21 von zdnetasia
iPhon ...

iPhone Apps schnüffeln mehr als man denkt t.co/...

10.02.12, 09:10 von silicon_de
Kodak ...

Kodak stellt Kamerageschäft ein t.co/...

10.02.12, 09:10 von zdnet_de
Onlin ...

Online retailers, not e-books, threat to bookstores. t.co/...

10.02.12, 08:52 von zdnetasia
M-ban ...

M-banking adoption outpacing security. t.co/...

10.02.12, 08:42 von zdnetasia
BTW ...

BTW blog by @eileenzdnetasia: Govt IT in need of transformation, basics must remain unchanged. t.co/...

10.02.12, 08:30 von zdnetasia
IBM ...

IBM to fix David Jones' online sales: t.co/...

10.02.12, 07:11 von zdnetaustralia
AFL ...

AFL fights Optus for its copyright: t.co/...

10.02.12, 07:04 von zdnetaustralia
Satel ...

Satellite-hating Libs blow policy free kick: t.co/...

10.02.12, 06:59 von zdnetaustralia