2017-05-08 99 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声明。

相关问题