Image.GetThumbnailimage方法和质量

时间:2011-08-26 19:56:31

标签: c# .net asp.net graphics

我遇到了Getthumbnailimage的问题。问题是某个尺寸的文件大小显示非常模糊和颗粒状。在msdn处,它说

  

当请求的缩略图图像的大小约为120 x 120像素时,GetThumbnailImage方法很有效。如果从具有嵌入式缩略图的图像请求大型缩略图图像(例如,300 x 300),则缩略图图像中可能会出现明显的质量损失。通过调用DrawImage方法缩放主图像(而不是缩放嵌入的缩略图)可能会更好。

问题是drawimage似乎是在windows窗体中。有没有办法在Webforms中做到这一点?这是我的代码的一部分。注意:我不想获得缩略图,其他人写了这个,我只想显示实际大小,这就是全部。

protected void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
ad a=(ad)Session["a"];
     DataView dv=a.AdData.Tables[0].DefaultView;
dv.RowFilter="ad_nbr=" + Request.QueryString["l"].Trim();
byte[] MyData= new byte[0];
MyData =  (byte[])dv[0]["image"];
System.Web.HttpContext.Current.Response.ContentType = "image/jpeg";     System.Drawing.Image _image = System.Drawing.Image.FromStream(new  stem.IO.MemoryStream( (byte[])dv[0]["image"]) );

System.Drawing.Image _newimage = _image.GetThumbnailImage(_image.Width, _image.Height,    null, new System.IntPtr() );

        _newimage.Save( System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg );

    }

1 个答案:

答案 0 :(得分:9)

如果您想要更好地控制所获得的质量(尤其是更好的质量),take a look at resizing using this method。还有一些工作要做,但结果比GetThumbnailImage好得多。

此方法也适用于Webforms。