Прибавив к выше сказаному, предварительно вычисленные высоту и ширину(вынос их из цикла) мы получаем практически мгновенно отрабатывающую функцию:
unsafe
{
byte* pBits = (byte*)bmpPtr;
byte* pBits32 = (byte*)bmpPtr32;
int height = image_.Height;
int width = image_.Width;
for (int i = 0; i < height; ++i)
for (int k = 0; k < width; ++k)
{
int absolute = i * width + k;
byte _color = pBits[absolute];
int relative = 4 * absolute;
pBits32[relative] = _color;
pBits32[relative + 1] = _color;
pBits32[relative + 2] = _color;
pBits32[relative + 3] = 255;
}
}
image_.UnlockBits(bmpData_);
image.UnlockBits(bmpData32);
С ув. Сергей.
История — это огромная система раннего предупреждения.
Norman Cousins
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение