2011-08-26 16 views
5

Tengo un problema con Getthumbnailimage. El problema es que los tamaños de archivo de un determinado tamaño se muestran muy borrosos y granulosos. Más en msdn, que diceImage.GetThumbnailimage método y calidad

El método GetThumbnailImage funciona bien cuando la imagen en miniatura solicitado tiene un tamaño de aproximadamente 120 x 120 píxeles. Si solicita una imagen en miniatura grande (por ejemplo, 300 x 300) de una Imagen que tiene una miniatura incrustada, puede haber una pérdida notable de calidad en la imagen en miniatura. Podría ser mejor escalar la imagen principal (en lugar de escalar la miniatura incrustada) llamando al método DrawImage.

El problema es que drawImage parece estar en formularios de Windows. ¿Hay alguna forma de hacer esto en Webforms? Esta es la parte de mi código. Nota: No quiero obtener una miniatura, alguien más escribió esto y solo quiero que se muestre el tamaño real, eso es todo.

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

    } 

Respuesta

9

Si desea más control sobre la calidad de lo que se obtiene (y de mejor calidad, en particular), take a look at resizing using this method. Hay un poco más de trabajo involucrado, pero los resultados son MUCHO mejores que GetThumbnailImage.

Este método también funciona en formularios web.

+0

intenté enchufar eso, ahora no obtengo nada en la salida de mi página además de html – Jeff

+1

Ese método creará la imagen, tendrá que colocarlo en otra página para generar la imagen por sí mismo y luego incluir eso con la etiqueta . [Aquí hay ayuda sobre cómo hacerlo] (http://stackoverflow.com/questions/2253228/asp-net-return-image-from-aspx-link) – Tridus