我遇到了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 );
}
答案 0 :(得分:9)
如果您想要更好地控制所获得的质量(尤其是更好的质量),take a look at resizing using this method。还有一些工作要做,但结果比GetThumbnailImage好得多。
此方法也适用于Webforms。