Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con Thumbnails

Estas en el tema de Problema con Thumbnails en el foro de .NET en Foros del Web. Tengo un codigo para crear thumbnails, me funciona muy bien cuando lo llamo desde la URL: thumbnail.aspx?nombre=nn&ancho=100 pero cuando cojo este codigo y lo meto ...
  #1 (permalink)  
Antiguo 04/07/2009, 01:43
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 6 meses
Puntos: 2
Problema con Thumbnails

Tengo un codigo para crear thumbnails, me funciona muy bien cuando lo llamo desde la URL:

thumbnail.aspx?nombre=nn&ancho=100

pero cuando cojo este codigo y lo meto dentro de otro codigo que genera una tablita gridview con datos deuna base de datos, y llamo a la funciona que crea los thumbnails pasa que la pagina de respuesta es puro codigo html, es decir no veo nada intepretado sino solo coigo html.

Alguien sabe por que ? podrian ayudarme plase
  #2 (permalink)  
Antiguo 04/07/2009, 08:06
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Respuesta: Problema con Thumbnails

Veamos vamos paso a paso:
1- Cuando creas una página tumb.aspx es para que exclusivamente te devuelva una imágen no código html, así que de el código aspx puedes remover todo el contenido menos la primera líena que define la clase base.
2- En el Load de esa página aspx es donde tu generas el tumbnail y cuando lo devuelves con Response.BinaryWrite primero debiste definir que el contenido que esa página mostrara será algun tipo de imagen: Response.ContentType = "image/jpeg";

Al final esa página lo que procese lo devuelve como imagen siempre porque el ContentType así lo dice, te dejo un ejemplo de mi sistema de tumb con este codigo de el evento Load de la página, solo para que veas a que me refiero:

protected void Page_Load(object sender, EventArgs e)
{
string file = Request.QueryString["file"];
string size = Request.QueryString["size"];

System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(file) );
string[] sizes = ImgSize(image, Convert.ToInt32(size));
System.Drawing.Image thumbnailImage = image.GetThumbnailImage(Convert.ToInt32(sizes[0]), Convert.ToInt32(sizes[1]), new System.Drawing.Image.GetThumbnailImageAbort(Thumbn ailCallback), IntPtr.Zero);

MemoryStream imageStream = new MemoryStream();

thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Png);
byte[] imageContent = new Byte[imageStream.Length];

imageStream.Position = 0;
imageStream.Read(imageContent, 0, (int)imageStream.Length);

Response.ContentType = "image/jpeg";
Response.BinaryWrite(imageContent);
}

Y el código que tiene la misma página aspx solo seria esto:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Tumb.aspx.cs" Inherits="Tumb" %>

Saludos,
  #3 (permalink)  
Antiguo 04/07/2009, 10:58
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problema con Thumbnails

Gracias por responder. Si entiendo lo que dices, en todo caso como hago cuando lo que quiero es que ese thumbnails este dentro de una tabla gridview ? Lo que yo hize es mi codigo normal del gridview y luego en el load llame a mi funciona que hace thumbnails:

to_make_thumb()

Y la respuesta que obtengo es que me sale el codigo html de la pagina.

Por otro lado lo que yo hago es:

Response.ContentType = "image/jpeg"
objThumbnail.Save(strServerPath & "thumb" & nombre, Imaging.ImageFormat.Jpeg)

Y con eso guardo la imagen en una carpeta.

Luego quedo listo para usar el thumbnail.

Saludos
  #4 (permalink)  
Antiguo 04/07/2009, 11:23
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Respuesta: Problema con Thumbnails

No necesitas crear un archivo para poder usarlo, lo que el ejemplo mio hace es generar el tumbnail al vuelo todo en byte. Y escribir una página nueva que sea de tipo image para que lo uses así:

<img src="tumb.aspx?file=logo.jpg&size=50" />

Allí el img buscará la imagen desde la página tumb.aspx que generará el tumb dinamico segun el archivo que le mandes sin escribir nada en disco simplemente devuelve en Byte la imagen y el IMG lo sabra manejar.

Otro modo que conosco y que no lo uso es que la página tumb.aspx crea el tumb en disco como dices y al final hace un Response.Redirect a la imagen creada, aunque el img tenga apuntado el SRC a el tumb.apsx recibe la imagen despues que se hace redirect.

Saludos,
  #5 (permalink)  
Antiguo 04/07/2009, 12:07
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problema con Thumbnails

Voy a probar eso que dices, de poner aimg src="thumb.aspx?imgnom=tata?dimension=100.... a ver que tal me va.

Saludos
  #6 (permalink)  
Antiguo 04/07/2009, 12:26
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problema con Thumbnails

Mira yo puse esto asi:

e.Row.Cells(4).Text = "<img src='thumbnail.aspx?filename=" & nombre & "&width=100' />"


Pero esto no me funciona, sorry por laignoracina en este tema, a ver si me das una manito please
  #7 (permalink)  
Antiguo 04/07/2009, 12:48
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problema con Thumbnails

Aja, ya me funciono, lo que pasa es que faltaba esto en el thumbnail.aspx

objThumbnail.Save(Response.OutputStream, Imaging.ImageFormat.Jpeg)

Saludos y muchas gracias por tu ayuda, ayer me quede hasta las 3 am con esta tema. jajaja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.