Publicidad

Redimensionar imágenes con c#.


Por Alex el 17/07/2008, Comentar el artículo

Comparte este artículo:      




Para realizar esta tarea utilizaremos el espacio de nombres System.Drawing y las clases Bitmap y Graphics que serán las que en realidad redimensionen las imágenes.


Siempre he dicho que lo mejor para aprender es a través de un ejemplo claro, y en este caso no va a ser menos. Os he preparado una clase para hacer la redimensión de las imágenes. Esta clase se compone de un método que recibe la imagen y el % que se quiere redimensionar.

Al método Resize le pasamos la ruta y nombre imagen (por ejemplo, c:imagen.jpg) y el % que queremos redimensionar.

public static Bitmap Resize(string Img, int porCiento) {

Creamos un bitmap de la imagen importando el fichero de disco.

Bitmap image = (Bitmap)Bitmap.FromFile(Img);

Calculamos el % que vamos a redimensionar la imagen

float nPercent = ((float)porCiento / 100);

Obtenemos el actual ancho y alto.

int destinoWidth = (int)(image.Width * nPercent); int destinoHeight = (int)(image.Height * nPercent);

Y aquí es donde redimensionamos la imagen, creamos un segundo bitmap de la imagen con las nuevas medidas

Bitmap Imagen2 = new Bitmap(destinoWidth, destinoHeight);

Y creamos la imagen con la clase Graphics

using (Graphics g = Graphics.FromImage((Image)Imagen2)) { g.DrawImage(image, 0, 0, destinoWidth, destinoHeight); }

Por último eliminamos referencias y devolvemos la imagen al método que ha llamado a esta clase.

image.Dispose(); return (Imagen2); }

Como podéis ver con cuatro líneas de código podéis redimensionar vuestras imágenes al gusto para poder ponerlas en el web o donde queráis.

También he preparado una pequeña aplicación para probar el funcionamiento de esta clase. Esta aplicación lo que hace es coger una ruta origen y dándole un % redimensiona todas las imágenes que encuentre y las coloca en una ruta destino. La verdad es que este programa lo hice para redimensionar la cantidad de fotos que le hago a mi hija recién nacida (bueno, mes y medio) y así poder pasar las fotos a los familiares.

Espacio de nombres utilizados:

System.Drawing

En resumen, os dejo la clase ResizeImage.cs (renombrar el fichero .txt a .cs) y la aplicación ResizeImage.

Enlaces relacionadas:


Clase ResizeImage.cs 
Ejemplo para utilizar la clase ResizeImage.cs 

Y esto es todo, feliz programmingq!!
Saludos
Alex.


Si te ha gustado el artículo compartelo en:      



También puede interesarte:

Instalar .NET Core en Ubuntu

Instalar .NET Core en Ubuntu

Por Alex, el 07/02/2020

Limpiar datos de un combobox en winforms.

Limpiar datos de un combobox en winforms.

Por Alex, el 23/03/2010

Crear, copiar y borrar bases de datos SQL Server desde c#.

Crear, copiar y borrar bases de datos SQL Server desde c#.

Por Alex, el 07/03/2010

Escribir en un excel desde c#.

Escribir en un excel desde c#.

Por Alex, el 04/03/2010

Llenar un Repeater o DataList con un DataTable.

Llenar un Repeater o DataList con un DataTable.

Por Alex, el 29/12/2008

El evento SelectedIndexChanged no funciona

El evento SelectedIndexChanged no funciona

Por Alex, el 26/12/2008


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.