2017-05-08 62 views
-3

我使用此代碼來切斷並保存適當格式的圖像,但我的圖像正在保存一個s文件,而不是我所期望的「png」。我該如何解決這個問題?圖像另存爲文件,而不是PNG

Rectangle dueDateRectangle = new Rectangle(symbolBounds.X1, symbolBounds.Y1, symbolBounds.X2 - symbolBounds.X1, symbolBounds.Y2 - symbolBounds.Y1); 
PixelFormat format = src.PixelFormat; 
Bitmap cloneBitmap = src.Clone(dueDateRectangle,format); 
MemoryStream ms = new MemoryStream(); 
cloneBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
ms.Position = 0; 
Image i = Image.FromStream(ms); 
i.Save("character" + counter, System.Drawing.Imaging.ImageFormat.Png); 

counter++; 
+1

您點擊的按鈕標爲「提問」。我在這裏沒有看到問題。如果你不問一個問題,你不能期待一個答案。請閱讀[問] – Piglet

+1

您沒有給該文件一個擴展名,系統如何知道它是什麼?在將來的註釋中,更多地解釋你的問題,「我的圖像保存爲文件,而不是像png.」,這真的不清楚。另外提供一個[MCVE],你已經發布了很多不相關的代碼來重現這個問題。 – TheLethalCoder

回答

1

與您的代碼的問題是以下行:

i.Save("character" + counter, System.Drawing.Imaging.ImageFormat.Png); 

的第二個參數的方法Save是文件路徑,無論是完整的或相對的。因此,你需要保存你的形象與擴展,在這種情況下可能.png

i.Save("character" + counter + ".png", System.Drawing.Imaging.ImageFormat.Png); 

旁註:ImageBitmapMemoryStream都實現IDisposable所以你應該呼籲他們Dispose,或更好,但包裹他們在using聲明。

相關問題