WPF C#에서 이미징 응용 프로그램을 작성하고 있습니다. 안전하지 않은 코드를 사용하여 픽셀 단위로 이미지 파일을 읽습니다.보호 된 메모리를 읽거나 쓰려고 시도했습니다. 이것은 종종 다른 메모리가 손상되었다는 표시입니다. 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;
}
}
편집 : 다음은 코드입니다.
B = (double)pbuff[i];
G = (double)pbuff[i + 1];
R = (double)pbuff[i + 2];
읽기 중에는 오류가 표시되지 않지만 동일한 색인 (읽음)에서는 쓰기를 시도하면 오류가 표시됩니다.
코드에 필수 부품이 누락되었습니다. 그리고 나는 스트라이드를 사용하는 방식이 잘못되었다고 생각합니다. – CodesInChaos
왜 복식을 읽고 바이트를 쓰고 있습니까? 또한 버퍼를 고정 했습니까? –