Acerca de los mapas de bits

Un mapa de bits es uno de los objetos GDI que se puede seleccionar en un contexto de dispositivo (DC). Los contextos de dispositivo son estructuras que definen un conjunto de objetos gráficos y sus atributos asociados, así como modos gráficos que afectan a la salida. En la tabla siguiente se describen los objetos GDI que se pueden seleccionar en un contexto de dispositivo.

Objeto gráfico Descripción
Mapas de bits Crea, manipula (escala, desplaza, gira y pinta) y almacena las imágenes como archivos en un disco.
Pinceles Pinta el interior de los polígonos, elipses y trazados.
Fuentes Dibuja texto en pantallas de vídeo y otros dispositivos de salida.
Paleta lógica Paleta de colores creada por una aplicación y asociada a un contexto de dispositivo determinado.
Paths Una o más figuras (o formas) que se rellenan o se describen.
Lápices Herramienta de gráficos que usa una aplicación para dibujar líneas y curvas.
Regiones Rectángulo, polígono o elipse (o una combinación de dos o más de estas formas) que se puede rellenar, pintar, invertir, tramar y usar para realizar la prueba de posicionamiento (probar la ubicación del cursor).

Desde la perspectiva del desarrollador, un mapa de bits se compone de una colección de estructuras que especifican o contienen los elementos siguientes:

  • Encabezado que describe la resolución del dispositivo en el que se creó el rectángulo de píxeles, las dimensiones del rectángulo, el tamaño de la matriz de bits, etc.
  • Una paleta lógica.
  • Matriz de bits que define la relación entre los píxeles de la imagen de mapa de bits y las entradas de la paleta lógica.

Un tamaño de mapa de bits está relacionado con el tipo de imagen que contiene. Las imágenes de mapa de bits pueden ser monocromáticas o de color. En una imagen, cada píxel corresponde a uno o varios bits de un mapa de bits. Las imágenes monocromáticas tienen una proporción de 1 bit por píxel (BPP). La creación de imágenes en color es más compleja. El número de colores que puede mostrar un mapa de bits es igual a dos elevado al número de bits por píxel. Por lo tanto, un mapa de bits de 256 colores requiere 8 BPP (2 ^ 8 = 256).

Las aplicaciones del panel de control son ejemplos de aplicaciones que usan mapas de bits. Cuando se selecciona un fondo (o papel tapiz) para el escritorio, en realidad se selecciona un mapa de bits que el sistema utiliza para pintar el fondo del escritorio. El sistema crea el patrón de fondo seleccionado dibujando repetidamente un patrón de píxel 32 por 32 en el escritorio.

En la ilustración siguiente se muestra la perspectiva del desarrollador del mapa de bits que se encuentra en el Redbrick.bmp de archivos. Muestra una matriz de paleta, un rectángulo de 32 por 32 píxeles y la matriz de índices que asigna colores de la paleta a píxeles del rectángulo.

Ilustración del rectángulo de píxeles, la matriz de paleta y la matriz de índices de redbrick.bmp

En el ejemplo anterior, se creó el rectángulo de píxeles en un dispositivo de pantalla VGA con una paleta de 16 colores. Una paleta de 16 colores requiere índices de 4 bits. por lo tanto, la matriz que asigna los colores de la paleta a los colores de píxeles también se compone de índices de 4 bits. (Para obtener más información sobre las paletas de colores lógicas, vea colores).

Nota

En el mapa de bits anterior, el sistema asigna índices a píxeles que comienzan con la línea de exploración inferior de la región rectangular y terminan con la línea de exploración superior. Una línea de recorrido es una fila única de píxeles adyacentes en una pantalla de vídeo. Por ejemplo, la primera fila de la matriz (fila 0) corresponde a la fila inferior de píxeles, la línea de análisis 31. Esto se debe a que el mapa de bits anterior es un mapa de bits independiente del dispositivo (DIB) de nivel inferior, un tipo común de mapa de bits. En los DIB de arriba abajo y en los mapas de bits dependientes del dispositivo (DDB), el sistema asigna índices a píxeles que comienzan con la línea de exploración superior.

En los temas siguientes se describen distintas áreas de mapas de bits.