none
Bitmap 直接赋给PictureBox失真 RRS feed

  • 问题

  • 环境:VS2005 C# WinForm

        private void button2_Click(object sender, EventArgs e)
        {
          
          Bitmap screenBitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
            Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
          
    
          Graphics g = Graphics.FromImage(screenBitmap);
          g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
          g.Dispose();
    
          this.pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
    
          //Image myimage = Image.FromHbitmap(screenBitmap.GetHbitmap());
          this.pictureBox1.Image = screenBitmap;// myimage;
          
    
          //screenBitmap.Save("C:\\a.bmp", ImageFormat.Bmp);
          //this.pictureBox1.ImageLocation = "C:\\a.bmp";
        }
    


    截图后,如果直接把 Bitmap 赋给pictureBox,显示出来图片在其黑色部分会出现一些白色絮状东西。

    如果把图片先保存至磁盘再载入pictureBox,则画质完好。但这样速度上慢很多。

    图片失真的样子:

    原图在:

    http://newspic.cn.yahoo.com/newspic/bbs/2176/

    请教如何能不失真地把Bitmap 直接赋给PictureBox?

    2011年8月14日 0:23

全部回复