Image.Save()方法中的GDI +中发生了一般错误

时间:2014-07-24 01:33:58

标签: c# image jpeg

我试图使用this类,但我在Image.Save()方法中遇到了GDI +中的通用错误。根据我的阅读,我需要关闭一些流,但我不知道哪一个。

I'm calling using this:

 Image image = Image.FromFile(@"C:\a.jpg");
            using (var resized = ImageUtilities.ResizeImage(image, 50, 100))
            {
                //save the resized image as a jpeg with a quality of 90
                ImageUtilities.SaveJpeg(@"C:\myimage.jpeg", resized, 90);
            }

为什么会出现这个错误,我该如何解决?

2 个答案:

答案 0 :(得分:2)

除非您的程序以管理员身份运行,否则您无法直接保存到C:的根目录,并将其保存在其中。

答案 1 :(得分:1)

您是否测试过将图像保存在不同位置?

如果它仍然失败,那么在不知道你的代码到底发生了什么的情况下,我会冒险猜测原始图像会在它应该出现之前的某个地方。这通常是导致错误的最常见原因。

我编写了一个库来处理许多不同的成像操作,同时确保正确处理内存。它经过了良好的测试,使用起来非常简单。

你可以在这里得到它。 http://imageprocessor.org/

使用该库的示例代码:

using (ImageFactory imageFactory = new ImageFactory())
{
    // Load, resize, set the quality and save an image.
    imageFactory.Load(@"C:\a.jpg")
                .Resize(new Size(50, 100))
                .Quality(90)
                .Save(@"C:\myimage.jpeg);
}