我试图使用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);
}
为什么会出现这个错误,我该如何解决?
答案 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);
}