Я пишу приложение для работы с изображениями в WPF C #. Он читает файл изображения попиксельно, используя небезопасный код.
Проблема, которую я получаю, заключается в том, что она выдает ошибку Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
при записи значения пикселя Он хорошо работает для некоторых изображений, а для других показывает ошибку. Ниже приведен код:
unsafe
{
byte* pbuff = (byte*)buff.ToPointer();
for (int i = 0; i < size; i=i+stride)
{
pbuff[i] = (byte)cr[j].NewColor.Blue;
pbuff[i + 1] = (byte)cr[j].NewColor.Green; // here it shows error
pbuff[i + 2] = (byte)cr[j].NewColor.Red;
}
}
EDIT
Чтение пикселей работает нормально.
B = (double)pbuff[i];
G = (double)pbuff[i + 1];
R = (double)pbuff[i + 2];
Он не показывает ошибки при чтении, но для того же индекса (который был прочитан) показывает ошибку при попытке записи.