Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2016, 05:43
Pimager
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 14 años, 4 meses
Puntos: 8
Cómo redimensionar una imagen sin perder calidad?

Hola,

Tengo la imagen de un código QR en formato JPG y de 2450x2450px.
Dicha imagen se genera automáticamente usando al librería QRCoder de C#.

Una vez generada dicha imagen, necesito resimensionarla a un tañaño de 126x126px. Para esta acción uso el siguiente código:
Código:
Bitmap newImage = new Bitmap(126, 126, PixelFormat.Format24bppRgb);
// Draws the image in the specified size with quality mode set to HighQuality
using (Graphics graphics = Graphics.FromImage(newImage))
{
  graphics.CompositingQuality = CompositingQuality.HighQuality;
  graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
  graphics.SmoothingMode = SmoothingMode.HighQuality;
  graphics.DrawImage(new Bitmap(imageSourcePath), 0, 0, 126, 126);
}
// Get an ImageCodecInfo object that represents the JPEG codec.
ImageCodecInfo imageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg);
// Create an Encoder object for the Quality parameter.
System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;
// Create an EncoderParameters object. 
EncoderParameters encoderParameters = new EncoderParameters(1);
// Save the image as a JPEG file with quality level.
EncoderParameter encoderParameter = new EncoderParameter(encoder, 100L);
encoderParameters.Param[0] = encoderParameter;
Pero la imagen resultante queda a muy mala calidad y el código QR no se puede leer.
Hay alguna manera de mejorar/obtener una imagen reducida más correcta?

Muchas gracias