我有一个有线的问题。我从网络控件(Awesomium)收到像素数据。
我想在PictureBox中显示bipmap。
using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(viewPortX, viewPortY, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat);
BitmapSurface bmpSurface = (BitmapSurface)htmlHolder.Surface;
bmpSurface.CopyTo(bmpData.Scan0, bmpSurface.RowSpan, 4, false, false);
bmp.UnlockBits(bmpData);
bmp.Save("result.jpg", ImageFormat.Jpeg);
pictureBox.Load(result.jpg);
}
这很好用。该位图被显示。 如果我改变
bmp.Save("result.jpg", ImageFormat.Jpeg);
pictureBox.Load(result.jpg);
到
pictureBox.Image = bmp;
然后在PictureBox中显示了错误图像
知道什么是错的吗?
问候
克莱门斯霍夫曼
答案 0 :(得分:1)
因为你在将bmp对象加载到picturebox之前销毁它。 using语句dispose在其范围内创建的图像。