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(毫秒)代码>