Элементарная замена этого:
_color = pBits[i * image_.Width + k];
pBits32[4* (i * image_.Width + k)] = _color;
pBits32[4* (i * image_.Width + k) + 1] = _color;
pBits32[4* (i * image_.Width + k) + 2] = _color;
pBits32[4* (i * image_.Width + k) + 3] = 255;
на вот это с предварительным вычислением индекса:
int absolute = i * image_.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;
даст более чем двухкратный прирост производительности.
Возможно стоит развернуть цикл и производительность окажется еще выше.
С ув. Сергей.
История — это огромная система раннего предупреждения.
Norman Cousins
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение