Nuevas características
En las siguientes secciones se describen varias de las nuevas características de GDI+.
Pinceles degradados
GDI+ expande las características de GDI ya que proporciona degradado lineal y pinceles degradados de trazado para rellenar formas, trazados y regiones. También se pueden utilizar pinceles degradados para dibujar líneas, curvas y trazados. Se puede utilizar un pincel degradado lineal para rellenar una forma con un color que cambie gradualmente conforme se mueva por la forma. Por ejemplo, supongamos que crea un pincel degradado horizontal y especifica el color azul en el borde izquierdo de una forma y el color verde en el borde derecho. Cuando rellene dicha forma con el pincel degradado horizontal, el color cambiará gradualmente a medida que se desplace del borde izquierdo de la forma al borde derecho. Si una forma se rellena con un pincel degradado vertical y se define de manera similar, cambiará de color desde arriba hacia abajo. En la siguiente ilustración se muestra una elipse rellena con un pincel degradado horizontal y una región rellena con un pincel degradado diagonal.
Cuando una forma se rellena con un pincel degradado de trazado, hay varias opciones para especificar el modo en que van a cambiar los colores a medida que nos desplacemos de una parte de la forma a otra. Una de las opciones es especificar un color de centro y un color de borde, de modo que los píxeles cambien gradualmente de un color a otro conforme nos desplacemos desde la parte central de la forma hasta los bordes externos. En la siguiente ilustración se muestra un trazado (creado a partir de un par de curvas spline de Bézier) relleno con un pincel degradado de trazado.
Curvas spline cardinales
GDI+, a diferencia de GDI, admite curvas spline cardinales. Una curva spline cardinal es una secuencia de curvas individuales combinadas para formar una curva mayor. La curva spline se especifica mediante una matriz de puntos y pasa por cada punto de dicha matriz. Una curva spline cardinal pasa suavemente (sin esquinas definidas) por cada punto de la matriz, por lo que está más refinada que un trazado creado mediante la conexión de líneas rectas. En la siguiente ilustración se muestran dos trazados, uno creado en forma de curva spline cardinal y otro creado mediante la conexión de líneas rectas.
Objetos de trazado independientes
En GDI, un trazado pertenece a un contexto de dispositivo, y el trazado se destruye a medida que se va dibujando. Con GDI+, un objeto Graphics se encarga de realizar el dibujo, y se pueden crear y mantener varios objetos GraphicsPath que sean independientes del objeto Graphics. Un objeto GraphicsPath no se destruye por la acción de dibujo, así que se puede utilizar el mismo objeto GraphicsPath para dibujar varias veces un trazado.
Transformaciones y el objeto Matrix
GDI+ proporciona el objeto Matrix, una herramienta eficaz que hace de las transformaciones (rotaciones, conversiones, etcétera) una tarea fácil y flexible. Los objetos matrix funcionan en combinación con los objetos que se transforman. Por ejemplo, un objeto GraphicsPath tiene un método Transform que recibe un objeto Matrix como argumento. Una única matrix 3×3 puede almacenar una transformación o una secuencia de transformaciones. En la siguiente ilustración se muestra un trazado y después de una secuencia de dos transformaciones (primero ajustar la escala, después rotar).
Regiones dimensionables
GDI+ expande en gran medida las características de GDI con la compatibilidad de regiones. En GDI, las regiones se almacenan en coordenadas de dispositivo, y la única transformación que se le puede aplicar a una región es una conversión. GDI+ almacena las regiones en coordenadas universales, y permite que una región experimente cualquier transformación (ajuste de escala, por ejemplo) que se pueda almacenar en una matriz de transformaciones. En la siguiente ilustración se muestra una región antes y después de una secuencia de tres transformaciones: ajuste de escala, rotación y conversión.
Mezcla alfa
Tenga en cuenta que en la ilustración anterior se puede ver una región sin transformar (rellena en rojo) a través de la región transformada (rellena con un pincel de trama azul). Esto es posible gracias a la mezcla alfa, con la que es compatible GDI+. Con la mezcla alfa, se puede especificar la transparencia de un color de relleno. Un color transparente se mezcla con el color de fondo; cuanto más transparente se especifique que sea un color de relleno, más se mostrará el fondo. En la siguiente ilustración se muestran cuatro elipses rellenas con el mismo color, el rojo, pero que tienen distintos niveles de transparencia.
Compatibilidad con formatos de varias imágenes
GDI+ proporciona las clases Image, Bitmap y Metafile, que permiten cargar, guardar y manipular imágenes en formatos diversos. Los siguientes formatos son compatibles:
- BMP (Bit MaP, mapa de bits)
- GIF
- JPEG
- EXIF
- PNG
- TIFF
- ICON
- WMF
- EMF