C# 如何从位图将图像放入图片框中

C# 如何从位图将图像放入图片框中,c#,bitmap,image,C#,Bitmap,Image,是否可以从内存加载图片(字节[]或流或位图)而不将其保存到磁盘 这是我用来将字节[]数组转换为位图的代码: unsafe { fixed (byte* ptr = Misc.ConvertFromUInt32Array(image)) { Bitmap bmp = new Bitmap(200, 64, 800, PixelFormat.Format32bppRgb, new IntPtr(ptr)); bmp.RotateFlip(RotateF

是否可以从内存加载图片(
字节[]
位图
)而不将其保存到磁盘

这是我用来将
字节[]
数组转换为
位图的代码:

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()

pictureBox.Image = bmp;

<>如果你使用C++编程语言,可以这样做:

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

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

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

这适用于希望将位图克隆到图像框的任何人。试试这个:

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

谢谢试图在不克隆位图的情况下使用该位图在System.Drawing.Dll中引发异常。使用你的.Clone建议为我解决了这个问题!这个代码对我有用<代码>this.pictureBox1.Image=Image.FromStream(毫秒)