我使用此代码在我的网络上重新调整图像mvc它在我的vs 2012上运行良好但是当我在服务器上传它时,这个错误发生在我身上:
GDI +中发生了一般性错误。] System.Drawing.Image.Save(String filename,ImageCodecInfo encoder, EncoderParameters encoderParams)+811245 Utilty.CompressImage(图片 img,String path,ImageComperssion ic)+431
public static void ResizeImage(this Stream inputStream, int width, int height, string savePath, ImageComperssion ic = ImageComperssion.Normal)
{
System.Drawing.Image img = new Bitmap(inputStream);
System.Drawing.Image result = new Bitmap(width, height, PixelFormat.Format24bppRgb);
using (Graphics g = Graphics.FromImage(result))
{
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.DrawImage(img, 0, 0, width, height);
}
result.CompressImage(savePath, ic);
}
public static void CompressImage(this System.Drawing.Image img, string path, ImageComperssion ic)
{
System.Drawing.Imaging.EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Convert.ToInt32(ic));
ImageFormat format = img.RawFormat;
ImageCodecInfo codec = ImageCodecInfo.GetImageDecoders().FirstOrDefault(c => c.FormatID == format.Guid);
string mimeType = codec == null ? "image/jpeg" : codec.MimeType;
ImageCodecInfo jpegCodec = null;
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
for (int i = 0; i < codecs.Length; i++)
{
if (codecs[i].MimeType == mimeType)
{
jpegCodec = codecs[i];
break;
}
}
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
img.Save(path, jpegCodec, encoderParams);
}
答案 0 :(得分:1)
Memory Streamers
。他们大部分时间都没有。