Mejora del rendimiento evitando el escalado automático

Si pasas solo la esquina superior izquierda de una imagen al método DrawImage , Windows GDI+ podría escalar la imagen, lo que reduciría el rendimiento.

La siguiente llamada al método DrawImage especifica una esquina superior izquierda de (50, 30), pero no especifica un rectángulo de destino:

graphics.DrawImage(&image, 50, 30);  // upper-left corner at (50, 30)

Aunque esta es la versión más sencilla del método DrawImage en términos del número de argumentos necesarios, no es necesariamente la más eficaz. Si el número de puntos por pulgada en el dispositivo de pantalla actual es diferente al número de puntos por pulgada en el dispositivo en el que se creó la imagen, GDI+ escala la imagen para que su tamaño físico en el dispositivo de pantalla actual sea lo más cercano posible a su tamaño físico en el dispositivo donde se creó.

Si desea evitar este escalado, pase el ancho y el alto de un rectángulo de destino al método DrawImage . En el ejemplo siguiente se dibuja la misma imagen dos veces. En el primer caso, no se especifican el ancho y el alto del rectángulo de destino y la imagen se escala automáticamente. En el segundo caso, se especifican el ancho y el alto (medidos en píxeles) del rectángulo de destino para que sean iguales que el ancho y el alto de la imagen original.

Image image(L"Texture.jpg");
graphics.DrawImage(&image, 10, 10);
graphics.DrawImage(&image, 120, 10, image.GetWidth(), image.GetHeight());

En la ilustración siguiente se muestra la imagen representada dos veces.

captura de pantalla de una ventana que contiene dos versiones de una imagen a escalas diferentes