2014-07-24 41 views
0

我試圖使用this類,但我在GDI + Image.Save()方法中出現了一個通用錯誤。從我讀到的這是我需要關閉的一些流,但我不知道哪一個。在GDI + Image.Save()方法中發生的一般錯誤

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

除非您的程序以管理員身份運行,否則您不能直接保存到C:的根目錄下,而是將其保存在該目錄中。

+0

我認爲,限制開始使用Windows 7 http://answers.microsoft.com/en-us/windows/forum/windows_7-security/windows- 7-can-save-files-to-c-even-after-making/938f2b50-b063-475b-8c5e-905d136df2e3?page = 3 –

+2

@SteveWellens只有管理員可以寫入'C:'的限制一直存在XP,但是,作爲管理員組成員的人不以管理員身份運行他們的程序默認情況下始於Visa和UAC。 –

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); 
} 
相關問題