2011-08-26 12 views
5

Ho riscontrato un problema con Getthumbnailimage. Il problema è che le dimensioni dei file di una certa dimensione sono molto sfocate e sgranate. Nel corso al msdn, si diceImage.GetThumbnailimage metodo e qualità

Il metodo GetThumbnailImage funziona bene quando la miniatura richiesta ha una dimensione di circa 120 x 120 pixel. Se si richiede un'immagine di anteprima di grandi dimensioni (ad esempio 300 x 300) da un'immagine con una miniatura incorporata, l'immagine di anteprima potrebbe presentare una notevole perdita di qualità. Potrebbe essere preferibile ridimensionare l'immagine principale (anziché ridimensionare la miniatura incorporata) chiamando il metodo DrawImage.

Il problema è che il disegno sembra essere in forme di finestre. C'è un modo per farlo in Webforms? Ecco la parte del mio codice. Nota: non voglio ottenere una miniatura, qualcun altro ha scritto questo e voglio solo visualizzare la dimensione effettiva, tutto qui.

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); 

    } 

risposta

9

se si vuole più controllo sulla qualità di ciò che si ottiene (e di migliore qualità, in particolare), take a look at resizing using this method. C'è un po 'più di lavoro, ma i risultati sono MOLTO meglio di GetThumbnailImage.

Questo metodo funziona anche in Webform.

+0

provato a collegare, non sto ottenendo nulla sulla mia pagina di output ora oltre a html – Jeff

+1

Quel metodo sta per creare l'immagine, dovrete metterlo su un'altra pagina per produrre l'immagine da solo e quindi includere quello con il tag . [Ecco l'aiuto su come farlo] (http://stackoverflow.com/questions/2253228/asp-net-return-image-from-aspx-link) – Tridus