这在ASP.NET应用程序中。参数无效调用Bitmap.Save()
本地,此代码运行良好,但在我们的生产服务器上,当调用Bitmap.Save()时,它会引发'Parameter is not valid'异常。
如果我不使用System.Drawing.Bitmap是因为它不是recommened在此基础上:
http://msdn.microsoft.com/en-us/library/system.drawing.aspx
System.Drawing命名空间中的类不支持使用 在Windows内或ASP.NET服务。 试图在这些应用程序类型 之一中使用来自 的这些类可能会产生意外问题,例如 由于运行时异常而导致服务性能降低和 。
我还能用什么?
Bitmap myBitmap = new Bitmap(img);
myBitmap.SetResolution(img.HorizontalResolution, img.VerticalResolution);
// get the tiff codec info
ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/tiff");
// Create an Encoder object based on the GUID for the Compression parameter category
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Compression;
// create encode parameters
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, (long)EncoderValue.CompressionCCITT4);
myEncoderParameters.Param[0] = myEncoderParameter;
// save as a tiff
myBitmap.Save(input, myImageCodecInfo, myEncoderParameters);
请问您能显示GetEncoderInfo(string)函数的功能吗? – 2011-03-22 20:52:42
这就是服务器缺少tiff编码器,但那不是结束。就像MSDN文档所说的那样,System.Drawing类不应该用在服务中。我有一些第三方图像控件(Atalasoft),我用它来保存为tiff。 – BrianK 2011-05-20 14:32:09