是否可以从内存(byte[]或stream或Bitmap)加载图片而不将其保存到磁盘?
这是我用来将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");
}
}
Run Code Online (Sandbox Code Playgroud)
而不是使用Bmp.save(),我可以把Bitmap图片框放在我的表格上吗?
我有一些类似于导致内存泄漏的公认答案的代码。问题是当您将图片框图像设置为位图时,您仍然引用位图,而不是创建副本。如果您需要多次设置图像,则需要确保处理所有旧位图。
这是任何人谁是寻找克隆一个位图图像框。尝试这个:
if (pictureBox.Image != null) pictureBox.Image.Dispose();
pictureBox.Image = myBitmap.Clone(
new Rectangle(0, 0, myBitmap.Width, myBitmap.Height),
System.Drawing.Imaging.PixelFormat.DontCare);
Run Code Online (Sandbox Code Playgroud)