Las clases Bitmap y BitmapData

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

La clases principales de ActionScript 3.0 para trabajar con imágenes de mapa de bits son Bitmap, que se usa para visualizar imágenes de mapa de bits en pantalla, y la clase BitmapData, utilizada para acceder y manipular los datos de imagen sin procesar de un mapa de bits.

Aspectos básicos de la clase Bitmap

Como subclase de la clase DisplayObject, la clase Bitmap es la clase principal de ActionScript 3.0 para mostrar imágenes de mapa de bits. Estas imágenes pueden haberse cargado a través de la clase flash.display.Loader o crearse dinámicamente utilizando el constructor Bitmap() . Al cargar una imagen de una fuente externa, los objetos Bitmap solo pueden usar los formatos de imagen GIF, JPEG o PNG. Una vez creada, la instancia de Bitmap se puede considerar como un envolvente de un objeto BitmapData que se debe representar en el escenario. Dado que las instancias de Bitmap son objetos de visualización, también se pueden utilizar todas las características y funcionalidades de los objetos de visualización para manipularlas. Para obtener más información sobre la utilización de los objetos de visualización, consulte Programación de la visualización .

Ajuste a píxeles y suavizado

Además de las funcionalidades comunes a todos los objetos de visualización, la clase Bitmap proporciona algunas características adicionales específicas de las imágenes de mapa de bits.

La propiedad pixelSnapping de la clase Bitmap determina si un objeto Bitmap se ajusta o no a su píxel más cercano. Esta propiedad acepta una de las tres constantes definidas en la clase PixelSnapping: ALWAYS , AUTO y NEVER .

La sintaxis para aplicar el ajuste a píxeles es la siguiente:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

Suele ocurrir que, cuando se escalan las imágenes de mapa de bits, estas se vuelven difusas y distorsionadas. Para reducir esta distorsión se puede utilizar la propiedad smoothing de la clase BitmapData. Cuando esta propiedad booleana está definida como true , al escalar la imagen, los píxeles de esta se suavizan. Esto otorga a la imagen una apariencia más clara y natural.

Aspectos básicos de la clase BitmapData

La clase BitmapData, que pertenece al paquete flash.display, se asemeja a una instantánea fotográfica de los píxeles que contiene una imagen de mapa de bits cargada o creada dinámicamente. Esta instantánea se representa mediante un conjunto que contiene los datos de los píxeles del objeto. La clase BitmapData también contiene una serie de métodos incorporados que resultan muy útiles a la hora de crear y manipular los datos de los píxeles.

Se puede usar el siguiente código para crear una instancia de un objeto BitmapData:

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

Los parámetros width y height especifican el tamaño del mapa de bits. Desde AIR 3 y Flash Player 11, ya no hay límite de tamaño para un objeto BitmapData. El tamaño máximo de un mapa de bits depende del sistema operativo.

En AIR 1.5 y en Flash Player 10, el tamaño máximo de un objeto BitmapData es 8.191 píxeles de anchura o de altura; el número total de píxeles no puede superar los 16.777.215. (De modo que, si un objeto BitmapData tiene 8.191 píxeles de anchura, tendrá como mucho 2.048 píxeles de altura.) En Flash Player 9 y versiones anteriores, y en AIR 1.1 y versiones anteriores, la limitación es de 2.880 píxeles de altura y 2.880 de anchura.

El parámetro transparent especifica si entre los datos del mapa de bits se incluye un canal alfa ( true ) o no ( false ). El parámetro fillColor es un valor de color de 32 bits que especifica el color de fondo, así como el valor de la transparencia (si se le ha definido como true ). En el siguiente ejemplo se crea un objeto BitmapData con un fondo anaranjado y una transparencia del 50 por ciento:

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

Para representar en la pantalla un objeto BitmapData recién creado, se debe asignar a una instancia de Bitmap o envolverse en ella. Para ello, se puede pasar el objeto BitmapData como parámetro del constructor del objeto Bitmap o asignarlo a la propiedad bitmapData de una instancia de Bitmap existente. También es necesario añadir la instancia de Bitmap a la lista de visualización llamando para ello a los métodos addChild() o addChildAt() del contenedor del objeto de visualización que contendrá a la instancia de Bitmap. Para obtener más información sobre el trabajo con la lista de visualización, consulte Añadir objetos de visualización a la lista de visualización .

En el siguiente ejemplo se crea un objeto BitmapData con un relleno rojo y se muestra en una instancia de Bitmap:

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);