Generar imagenes miniatura

Hace unos días atras y después de ver muchos requerimientos sobre el tema, me puse en campaña para hacer algo de código simple que pueda generar imagenes en miniatura en el aire. Me encontre con la sorpresa de lo facil que resultó, especialmente despues de compararlo con código desarrollado en ASP 3.0
 
Aca vá la clase, simplmente necesitan copiarla en una página, y esta retornará la imagen en miniatura. Es importante tener en cuenta que dentro de la parte HTML de la página no debe existir ningún caracter, solo la declaración de la página en si.
 
Para llamar a la página derán hacerlo de la forma: NombreDePagina.aspx?ImagePath=[Dirección Fisica de la imagen en el servidor]
 
Por supuesto, el código puede ser facilmente modificable para que obtenga las imagenes de una base de datos, o por un ID.
 
 
 

Imports System.Drawing

Imports System.Drawing.Imaging

Imports System.Drawing.Drawing2D

 

Partial Class GenerateThumb

    Inherits System.Web.UI.Page

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Len(Trim(Request.QueryString("ImagePath"))) <> 0 Then

            Try

                ‘Creamos una imagen basada en el archivo original

                Dim _MainBitMap As New Bitmap(Request.QueryString("ImagePath"))

                Dim oThumbnail As Image

 

                With _MainBitMap

          ‘Seteamos una resolución de DPI

          ‘Esto da la posibilidad de bajar más aún el tamaño

          ‘En KB de la imagen.

                    .SetResolution(75, 75)

          ‘La principal ventaja de .Net

          ‘Es que tiene métodos para generar las imagenes

          ‘en miniatura, en este caso de 80 x 70 pixeles

                    oThumbnail = .GetThumbnailImage(80, 70, Nothing, Nothing)

                End With

 

                Response.ContentType = "image/Jpeg"

                oThumbnail.Save(Response.OutputStream, ImageFormat.Jpeg)

            Catch

            End Try

        Else

            ‘En el caso de que la imagen no exista, mostramos una avisando esto.

            Dim _MainBitMap As New Bitmap(80, 70, PixelFormat.Format16bppRgb555)

            Dim _ErrorGraphic As Graphics = Graphics.FromImage(_MainBitMap)

 

            With _ErrorGraphic

                .Clear(Color.White)

 

                .DrawLine(New Pen(Color.Red, 1), 0, 0, 80, 0)

                .DrawLine(New Pen(Color.Red, 1), 0, 69, 80, 69)

                .DrawLine(New Pen(Color.Red, 1), 0, 0, 0, 69)

                .DrawLine(New Pen(Color.Red, 1), 79, 0, 79, 69)

 

                .DrawString("Imagen", New Font("Arial", 10, FontStyle.Regular), Brushes.Gray, 2, 5)

                .DrawString("No disponible", New Font("Arial", 10, FontStyle.Regular), Brushes.Gray, 2, 20)

            End With

 

            Response.ContentType = "image/Jpeg"

            _MainBitMap.Save(Response.OutputStream, ImageFormat.Jpeg)

        End If

    End Sub

 

End Class

Anuncios

Mi regreso

Hace 3 días atrás comenté que viajaría a Buenos Aires, pero con la situación por la cual pasaba la línea aérea L.A.B., no sabía que pasaría.

 

Bueno, lo bueno es que viajé, y lo mejor es que conocí aquellas caras que veía solo en el MSN o en los foros, o por correo electrónico.

 

Hasta hace tres días pensé que era el único loco en este mundo, pero estos tres días me hicieron ver que locos hay en todos lados.

 

Locos, eufóricos, apasionados, delirantes, y más adjetivos, todos juntos por la tecnología.

 

Así que no me queda más que decir, gracias por haberlos podido conocer, y saber que formo parte de algo que es más grande de lo que podía imaginar.

 

Gracias a todos.

 

Matías Iacono

Microsoft M.V.P.


Volar o no volar…

Hace aproximadamente 1 mes y algunas semanas, la línea aerea nacional (L.A.B.) está teniendo problemas financieros, entre otros, por lo que no puede complir con sus obligaciones para sus clientes. O sea, no vuela.
 
Por este motivo, hasta hace unos días aún estaba a la espectativa, si es que yo podría viajar a Buenos Aires, para una conferencia que se dará en las oficinas de Microsoft.
 
Hoy, despues de hacer 3 horas de colas, he podido obtener el pasaje que estaba a mi nombre, y con suerte, mañana estaré viajando.
 
Mi mayor miedo no es si mañana viajo o no, el problema está en que si podré volver. Aunque debo decir que no me desagrada la idea de quedarme en Buenos Aires 🙂