喜来,我在麻烦了LockBits GDI函数,它不似乎正常工作。
这是我很简单的测试代码:
BitmapData dataHigh;
BitmapData dataImg;
Bitmap *image = new Bitmap(480,520,PixelFormat24bppRGB);
Bitmap *imgSx = new Bitmap(480,480,PixelFormat24bppRGB);
imgSx->LockBits(Rect(10,10,10,10),ImageLockModeRead | ImageLockModeWrite,PixelFormat24bppRGB,&dataHigh);
image->LockBits(Rect(10,10,10,10),ImageLockModeRead | ImageLockModeWrite,PixelFormat24bppRGB,&dataImg);
memset(dataHigh.Scan0,0xff,320);
memcpy(dataImg.Scan0,dataHigh.Scan0,320);
imgSx->UnlockBits(&dataHigh);
image->UnlockBits(&dataImg);
我将填补空白,只在选择的图像部分,但结果,如果某行没有一个正方形,似乎,从SCAN0指出缓冲区包含阿拉的图像数据,并用矩形选择,不仅部分。
我强迫memset和memcpy的字节数,因为这两个BitmapData步幅值总是喜欢整幅图像1440。
可以的LockBits功能错误?
谢谢你在前进!
马尔科