0


我有一个有线问题。我从 Web 控件 (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 中。
知道有什么问题吗?
问候
克莱门斯霍夫曼

4

1 回答 1

1

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

于 2013-08-20T08:17:33.890 回答