Autoajustar Imágenes al ancho enviado por parametro
Esta función es muy útil ya que permite autodimensionar las imágenes , tan solo enviando la imagen y el ancho como parámetros.
public static Image ResizeImage(Image srcImage, int Width) { int ancho = srcImage.Width; int alto = srcImage.Height; int porcentaje = (Width*100)/ancho; int Height = (porcentaje*alto)/100; using (Bitmap imagenBitmap = new Bitmap(Width,Height,PixelFormat.Format32bppRgb)) { imagenBitmap.SetResolution( Convert.ToInt32(srcImage.HorizontalResolution), Convert.ToInt32(srcImage.HorizontalResolution)); using (Graphics imagenGraphics = Graphics.FromImage(imagenBitmap)) { imagenGraphics.SmoothingMode = SmoothingMode.AntiAlias; imagenGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic; imagenGraphics.PixelOffsetMode = PixelOffsetMode.HighQuality; imagenGraphics.DrawImage(srcImage,new Rectangle(0, 0, Width, Height), new Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel); MemoryStream imagenMemoryStream = new MemoryStream(); imagenBitmap.Save(imagenMemoryStream, ImageFormat.Jpeg); srcImage= Image.FromStream(imagenMemoryStream); } } return srcImage; }
Saludos