我在尝试保存图片时遇到GDI错误。我看了很多解决方案,似乎没有人回答这个问题。我创建了一个带有简单加载和保存按钮的表单。
加载使用流读取,我将保存为新文件名。测试创建正在运行,因此没有权限。文件abctest.jpg是用0字节创建的。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CheckImageInUse
{
public partial class Form1 : Form
{
Bitmap originalImage = null;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var fs = File.OpenRead(@"c:\images\DSC_0005.JPG"))
{
this.originalImage = new Bitmap(fs);
}
}
private void button2_Click(object sender, EventArgs e)
{
using (File.Create(@"c:\images\testcreate.txt"))
{ }
this.originalImage.Save(@"c:\images\abctest.jpg");
}
}
}
答案 0 :(得分:0)
我有一个游戏,我能看到的唯一方法就是让这个工作变得有效。
private void button1_Click(object sender, EventArgs e)
{
using (var fs = File.OpenRead(@"c:\images\DSC_0005.JPG"))
using (Bitmap tempBitmap = new Bitmap(fs))
{
this.originalImage = new Bitmap(tempBitmap);
}
}
我认为这与链接到磁盘上的原始图像和一些内部指针有关。在内存中创建图像的新副本允许我保存它。有点浪费但有效。