2011-08-26 18 views
5

我遇到Getthumbnailimage問題。問題是一定大小的文件大小顯示非常模糊和顆粒感。在msdn,它說Image.GetThumbnailimage方法和質量

當請求的縮略圖圖像的大小約爲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); 

    } 

回答

9

如果你想更好地控制你所得到的質量(尤其是更好的質量),take a look at resizing using this method。還有更多的工作要做,但是結果比GetThumbnailImage更好。

此方法也適用於Webforms。

+0

嘗試插入,我現在沒有得到任何東西在我的頁面輸出現在除了html – Jeff

+1

該方法將創建圖像,你將不得不把它放在另一個頁面上輸出圖像本身,然後包括與標記。 [這是如何做到這一點](http://stackoverflow.com/questions/2253228/asp-net-return-image-from-aspx-link) – Tridus