如何将图像放在Bitmap的图片框中

时间:2009-04-13 10:30:20

标签: c# bitmap image

是否可以从内存(byte[]streamBitmap)加载图片而不将其保存到磁盘?

这是我用来将byte[]数组转换为Bitmap的代码:

unsafe
{
    fixed (byte* ptr = Misc.ConvertFromUInt32Array(image))
    {
        Bitmap bmp = new Bitmap(200, 64, 800, PixelFormat.Format32bppRgb, new IntPtr(ptr));
        bmp.RotateFlip(RotateFlipType.Rotate180FlipX);
        bmp.MakeTransparent(Color.Black);
        bmp.Save("test.bmp");
    }
}

我可以将Bmp.save()放在表单上的图片框中,而不是使用Bitmap吗?

4 个答案:

答案 0 :(得分:51)

你试过这个吗?

pictureBox.Image = bmp;

答案 1 :(得分:3)

我有一些类似于接受的答案的代码导致内存泄漏。问题是,当您将图片框图像设置为位图时,您仍然指的是位图,而不是创建副本。如果您需要多次设置图像,则需要确保处理所有旧位图。

这适用于那些希望克隆位图到图像框的人。试试这个:

if (pictureBox.Image != null) pictureBox.Image.Dispose();
pictureBox.Image = myBitmap.Clone(
    new Rectangle(0, 0, myBitmap.Width, myBitmap.Height), 
    System.Drawing.Imaging.PixelFormat.DontCare);

答案 2 :(得分:0)

如果您使用的是C ++编程语言,可以这样做:

void backGroundImage()
{
    Image^ back = gcnew Bitmap("C:\\Users\\User\\Documents\\image.bmp");
    pictureBox1->BackGroundImage = back;
};

然后,当您需要加载位图时,可以调用backGroundImage

答案 3 :(得分:-1)

pictureBox.Image = Properties.Resources.image.bmp;