Pixelbox在有效位图上显示错误图像

时间:2013-08-20 08:12:12

标签: c# winforms visual-studio picturebox


我有一个有线的问题。我从网络控件(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中显示了错误图像 知道什么是错的吗? 问候
克莱门斯霍夫曼

1 个答案:

答案 0 :(得分:1)

因为你在将bmp对象加载到picturebox之前销毁它。 using语句dispose在其范围内创建的图像。