Windows Server 2003上的.Net图像处理问题

时间:2010-05-19 13:05:56

标签: .net image-processing windows-server-2003

在asp.net 2.0应用程序中,我试图从上传的图像创建缩略图。然而,当我在Windows7下在我的电脑上测试应用程序时它工作正常,但在真正的Windows 2003 Server上,调整大小的图像质量更差。

这种差异可能来自哪里?不同的JPEG编解码器,如果是,如何在Win 2003 Server上更新?谢谢!

以下是代码:

调整图片大小

  

Bitmap newBmp = new Bitmap(imgWidth,imgHeight,PixelFormat.Format24bppRgb);   newBmp.SetResolution(inputBmp.Horizo​​ntalResolution,   inputBmp.VerticalResolution);

     

//创建附加到的图形对象   新的位图Graphics newBmpGraphics   = Graphics.FromImage(newBmp);

     

newBmpGraphics.InterpolationMode =   InterpolationMode.HighQualityBicubic;

     

newBmpGraphics.SmoothingMode =   SmoothingMode.HighQuality;

     

newBmpGraphics.PixelOffsetMode =   PixelOffsetMode.HighQuality;

     

newBmpGraphics.DrawImage(inputBmp,new   矩形(0,0,imgWidth,imgHeight),   new Rectangle(0,0,inputBmp.Width,   inputBmp.Height),GraphicsUnit.Pixel);

保存图片

  

System.IO.Stream imgStream = new   System.IO.MemoryStream();

     

//获取ImageCodecInfo   期望的目标格式ImageCodecInfo   destCodec =   FindCodecForType(ImageMimeTypes.JPEG);

     

if(destCodec == null){       //没有可用于该格式的编解码器       抛出新的ArgumentException(“请求的格式图像/ jpeg没有   安装了可用的编解码器“,   “destFormat”); }

     

//创建一个EncoderParameters   集合包含//参数   控制dest格式的编码器   EncoderParameters destEncParams = new   EncoderParameters(1);

     

EncoderParameter qualityParam = new   EncoderParameter(System.Drawing.Imaging.Encoder.Quality,(长)的质量);

     

destEncParams.Param [0] = qualityParam;

     

//保存所选的编解码器和   编码器参数   inputBmp.Save(imgStream,destCodec,   destEncParams);

     

位图destBitmap = new   位图(imgStream);

0 个答案:

没有答案