【发布时间】:2015-06-28 16:25:38
【问题描述】:
我正在尝试从单独的红色、绿色和蓝色数组创建位图,以便以后可以使用此位图为 avi 文件 (SharpAVI) 创建帧。我已经尝试了以下有效的代码:
Bitmap Bmp = new Bitmap(Width, Height);
for (int ii = 0; ii < (Width*Height); ii++)
{
ypos = ii / Width;
xpos = ii % Width;
Bmp.SetPixel(xpos, ypos, Color.FromArgb(dataR[ii], dataG[ii], dataB[ii]));
}
数组 dataR、dataG 和 dataB 包含从 0,0 开始并以宽度、高度结束的颜色值(0 到 255)。但是,此代码相当慢。我宁愿直接从数据中生成位图,但我不确定如何。我四处搜寻,并在以下方向找到了一些东西:
Bitmap bm_Image = new Bitmap(Width, Height, Stride, PixelFormat.Format24bppRgb, ipPtrRGB);
但我不完全理解这是如何工作的。我读过一些关于填充数据等的内容。有人知道快速完成这项工作的方法吗?
【问题讨论】:
-
查看here 了解使用锁定位的示例。