本帖最后由 getstr88 于 2022-6-25 20:43 编辑
如下面代码,执行到bitmap.Clone这里报内存溢出
但是把LoadImageFile函数,换成IImage.FromFile就不报错了。
但是我不能用Image.FromFile,因为不允许占用图片,要求打开图片后立即释放handle,不能阻碍其他程序使用那个图片文件
所以求助:
1、想知道我下面这种写法报错的原因。
2、想知道怎么实现不占用打开图片后续还能正常操作bitmap
[C#] 纯文本查看 复制代码 private void Form1_Load(object sender, EventArgs e)
{
Bitmap bitmap = LoadImageFile(@"D:\1.tif");
bitmap = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), PixelFormat.Format1bppIndexed);
MessageBox.Show("1");
}
public static Bitmap LoadImageFile(string filePath)
{
FileStream fileStream = File.OpenRead(filePath);
Image image = Image.FromStream(fileStream);
fileStream.Close();
return (Bitmap)image;
} |