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 imagenfloat 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 medidasBitmap Imagen2 = new Bitmap(destinoWidth, destinoHeight);
Y creamos la imagen con la clase Graphicsusing (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.
Clase ResizeImage.cs
Ejemplo para utilizar la clase ResizeImage.cs
Y esto es todo, feliz programmingq!!
Saludos
Alex.