我有这样的代码
Bitmap bmp(i_texWidth, i_texHeight);
std::unique_ptr<Graphics> pBmpGr(Graphics::FromImage(&bmp));
SolidBrush brush(Color(255, 168, 128, 192));
assert(pBmpGr->FillRectangle(&brush, 0, 0, i_texWidth, i_texHeight) == Ok);
BitmapData bitmapData;
auto rect = Rect(0, 0, i_texWidth, i_texHeight);
bmp.LockBits(&rect, ImageLockModeWrite, PixelFormat24bppRGB, &bitmapData);
在bitmapData.Scan0指向的数组被0填充后,尽管位图像素具有正确的值,我使用bmp.GetPixel进行了检查。 我尝试了不同的像素格式,但没有用。
答案 0 :(得分:0)
ImageLockModeWrite
不需要将像素数据复制到数组中。相反,只需要提供一个可以填充的数组,然后将其写入图像。
将其更改为ImageLockModeWrite | ImageLockModeRead