이것은 내 코드 here에서 수집 한 것입니다.C의 이미지 반전
private unsafe byte[] BmpToBytes_Unsafe(Bitmap bmp)
{
BitmapData bData = bmp.LockBits(new Rectangle(0,0,1000,1000),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb);
// number of bytes in the bitmap
int byteCount = bData.Stride * bmp.Height;
byte[] bmpBytes = new byte[byteCount];
// Copy the locked bytes from memory
Marshal.Copy(bData.Scan0, bmpBytes, 0, byteCount);
Marshal.
// don't forget to unlock the bitmap!!
bmp.UnlockBits(bData);
return bmpBytes;
}
나는 위에서 언급 한 기능에서 바이트를 가져 와서 추가 처리없이 표시합니다. 하지만 출력에서 거꾸로 된 이미지를 얻습니다. 누군가 설명 할 수 있니?
빠른 노트는,이 메소드가 스레드에서 호출 한 스레드 만이 방법을 액세스합니다. 이 방법은 스레드로부터 안전해야한다고 생각하십니까? – nightWatcher
@nightWatcher : 하나의 스레드 만 메서드를 호출하면 스레드를 안전하게 만들 필요가 없습니다. – Guffa