2012-03-08 59 views
11

Estoy tratando de escribir una clase de utilidad que permita el cambio de tamaño automático de las imágenes que son tilebale. Digamos que hay un srcBitmap desde donde copio una región dada por una Rectángulo srcRegion. Luego quiero pegar (información de píxeles sabiamente) esa región en otra imagen llamada Bitmap destBitmap, en una región de destino ReDongRegion. Sé cómo obtener la región de la fuente y ponerla en un objeto Bitmap, pero aún no he podido encontrar la forma de pegar realmente un objeto Bitmap en una región determinada, dentro de otro objeto de mapa de bits más grande.C# copiar pegar una región de imagen en otra imagen

¿Hay una forma rápida de hacerlo? (sin GDI y sin profundizar en la matriz de bytes de los mapas de bits). Este es el fragmento que debería aclarar mi objetivo

private static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion, Bitmap destBitmap, Rectangle destRegion) 
    { 
     // get the required region from the destination 
     Bitmap region = Copy(srcBitmap, srcRegion); 
    } 
+2

Usted ya está usando GDI + con la clase de mapa de bits. – dvdvorle

+0

¡Gracias! Supongo que el framework .Net 4.0 tiene envoltorios alrededor de esta biblioteca. no estaba al tanto, C# y dotNet no son mi pan de cada día. – teodron

Respuesta

19

Utilice esta:

public static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion,ref Bitmap destBitmap, Rectangle destRegion) 
    { 
     using (Graphics grD = Graphics.FromImage(destBitmap))    
     { 
      grD.DrawImage(srcBitmap, destRegion, srcRegion, GraphicsUnit.Pixel);     
     } 
    } 
+2

Ah, fuiste más rápido y mejor. No había visto esa sobrecarga xD – dvdvorle

+0

Gracias, ¡yo tampoco estaba al tanto de la sobrecarga! Espero que ayude a otras personas también. ¡Atentamente! – teodron

+0

+1, de nada –

Cuestiones relacionadas