GDI +简单读取和保存中发生一般错误

时间:2016-01-21 12:04:50

标签: gdi+

我在尝试保存图片时遇到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");
    }
  }
}

1 个答案:

答案 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);
        }            
    }

我认为这与链接到磁盘上的原始图像和一些内部指针有关。在内存中创建图像的新副本允许我保存它。有点浪费但有效。