Laden...

Negativbild erstellen

Letzter Beitrag vor 17 Jahren 4 Posts 1.961 Views
Negativbild erstellen

Ich möchte von einem Image ein Negativbild erstellen. Dazu habe ich folgenden Code geschrieben:


[code]
public static Bitmap GrayscaleImage(Image img)
{
	int width = img.Width;
	int heigth = img.Height;
	
	Bitmap source = (Bitmap)img;
		
	for (int i=0; i<width; i++)
		for (int j=0; j<heigth; j++)
		{
			Color pixelColor = source.GetPixel(i, j);
			byte R = Convert.ToByte(255 - pixelColor.R);
			byte G = Convert.ToByte(255 - pixelColor.G);
			byte B = Convert.ToByte(255 - pixelColor.B);
			byte value = Convert.ToByte( (R+G+B)/3 );
			source.SetPixel(i, j, Color.FromArgb(value, value, value));
		}
			
	return source;
}
[/code]

Beim Praxistest zeigte sich nun, dass diese Methode unter umständen sehr langam ist. Hatt jemand eine Idee, wie ich das ganze beschleunigen kann?

der schlüssel dürft die Benutzung von unsafe-Code sein:

Hier mal 2 Links die ich auf die schnelle gefunden habe:*http://www.codeproject.com/csharp/quickgrayscale.asp *http://www.codeproject.com/cs/media/csharpgraphicfilters11.asp

Vielen Dank, die Posts haben mir auf jeden Fall weiter geholfen 😁