Пример реализации быстрого Bitmap
Чтобы использовать, необходимо добавить файл FastBitmap.cs к солюшену.
Затем добавить в файле, в котором предполагается использовать быструю битмапу строку using FastBitmap;
.
Затем предполагается использовать один или несколько из предложенных ниже вариантов:
// Пусть где-то тут объявлена переменная bitmap типа Bitmap;
using(var fastBitmap = new FastBitmap(bitmap)) { for(var x = 0; x < fastBitmap.Width; x++) for(var y = 0; y < fastBitmap.Height; y++) { var color = fastBitmap[x, y]; fastBitmap[x, y] = Color.FromArgb( 255 - color.R, 255 - color.G, 255 - color.B ); } } // Здесть изменения уже попали в обычный bitmap
bitmap.Select(color => { /* Преобразуем каждый пиксель в новый */ var avg = (byte)((color.R + color.G + color.B) / 3.0); return new Color.FromArgb(avg, avg, avg); });
var hist = new int[256]; bitmap.ForEach(color => { /* Выполняем одно и то же действие для всех пикселей битмапы. */ hist[color.R]++; });