2011-05-25 15 views
5

Este código cambia el tamaño de una imagen y la guarda en el disco.Cómo guardar un mapa de bits después de configurar la interpolación con la clase de gráficos

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH)) 
{ 
    medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"), 
        ImageFormat.Jpeg); 
} 

Pero si quiero usar la clase de gráficos para configurar la interpolación, ¿cómo la guardo? La clase de gráficos tiene un método de guardar, pero no toma ningún parámetro. ¿Cómo lo guardo en el disco como el mapa de bits? Aquí está un fragmento de código modificado:

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH)) 
{ 
    var g = Graphics.FromImage(medBitmap); 
    g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
    //What do I do now? 
    medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"), 
        ImageFormat.Jpeg); 
} 

sólo hay que ajustar la interpolación y luego guardarlo en el disco.

Respuesta

3

llamada DrawImage el objeto Graphics para actualizar el mapa de bits:

using (var medBitmap = new Bitmap(fullSizeImage, newImageW, newImageH)) 
{ 
    using (var g = Graphics.FromImage(medBitmap)) 
    { 
    g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
    g.DrawImage(medBitmap, 0, 0); 
    } 
    medBitmap.Save(HttpContext.Current.Server.MapPath("~/Media/Items/Images/" + itemId + ".jpg"), ImageFormat.Jpeg); 
} 
+0

ah eso es lo que me estaba perdiendo. –

1

Crea un nuevo mapa de bits con el tamaño que desees y configura el modo de interpolación. Luego use Graphics.DrawImage para dibujar la imagen de tamaño completo en el nuevo mapa de bits.

Cuestiones relacionadas