.NetのBitmapをポインタで操作する
自前でピクセルデータとかいじらないし、使い道があるか分からんけど。
Bitmap ^buffer = gcnew Bitmap(256, 256); // ロック対象矩形 Rectangle rect(0, 0, 256, 256); // 書き込み専用でbufferをロック Drawing::Imaging::BitmapData ^bmp_data = buffer->LockBits(rect, Drawing::Imaging::ImageLockMode::WriteOnly, Drawing::Imaging::PixelFormat::Format32bppArgb); // bufferのアドレスを取得 IntPtr ptr = bmp_data->Scan0; // アンマネージドのポインタに変換 unsigned char *buf = (unsigned char*)ptr.ToPointer(); // グラデーションを書き込む for(int i = 0; i < 256; i++) { for(int j = 0; j < 256; j++) { int n = (i * 256 + j) * 4; buf[n+0] = i; buf[n+1] = j; buf[n+2] = 255; buf[n+3] = 255; } } buffer->UnlockBits(bmp_data); // ロック解除
ピクチャボックスとかにセットすれば表示できる。