ImageResizer una pequeña joya

El número de paquetes disponibles en el sitio NuGet se está empezando a llenar. Os recomiendo que le echéis un vistazo de vez en cuando para ver qué cosas nuevas van apareciendo, seguro que encontráis algo que os pueda ser útil.

Hoy vamos a ver un pequeño pero útil paquete del que Bertrand Le Roy se ha hecho eco hace poco para poder reescalar imágenes de forma sencilla en ASP.NET. El paquete es ImageResizer.

Aquí tenéis un pequeño ejemplo sobre cómo reescalar un JPEG desde un stream de bytes con esta herramienta:

var settings = new ResizeSettings {

MaxWidth = thumbnailSize,

MaxHeight = thumbnailSize,

Format = "jpg"

};

settings.Add("quality", quality.ToString());

ImageBuilder.Current.Build(inStream, outStream, settings);

resized = outStream.ToArray();

Esta API tiene un montón de flexibilidad. Podéis instalarla simplemente con el comando:

Comando de instalación de ImageResizer con NuGet

Ahora creamos un proyecto ASP.NET (MVC o Web Forms) añadimos una imagen al proyecto.

El paquete se Nuget se llama ImageResizer, y el web.config preconfigurado es "ImageResizer.WebConfig" que incluye un módulo de "interceptación" que podemos usar a partir de ya.

Así que tengo una imagen de cuando yo era pequeño, que puedo ver en cualquier navegador por supuesto:

Yo

Y ahora, gracias al módulo instalado, puedo añadir a la url un "?width=150" y apareceré más pequeñito todavía:

Yo en 150 píxelesSi, seguro que se puede hacer un DoS al sistema de alguien con estas peticiones, pero para sitios pequeños este módulo es una solución. Ese problema debe resolverse en otro sitio, no en el paquete.

Para escenarios más sofisticados incluyen una dll con la que podemos hacer más cosas como rotar, poner marcas de agua, etc. Bertrand nos muestra una gráfica con las diferentes velocidades comparándola con GDI y con Windows Imagin Component, pero como he dicho, es código totalmente manejado y en confianza media (Medium Trust) lo que lo hace muy apetecible. La calidad también tiene su cosa.

Espero que sirva.

Juan María Laó Ramos.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>