De klassen Bitmap en BitmapData

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

De belangrijkste ActionScript 3.0-klassen voor het werken met bitmapafbeeldingen zijn de Bitmap-klasse, die wordt gebruikt voor de weergave van bitmapafbeeldingen op het scherm en de BitmapData-klasse, die wordt gebruikt voor het openen en manipuleren van de ruwe afbeeldingsgegevens van een bitmap.

De klasse Bitmap

Als een subklasse van de klasse DisplayObject is de klasse Bitmap de belangrijkste ActionScript 3.0-klasse voor het weergeven van bitmapafbeeldingen. Deze afbeeldingen kunnen zijn geladen via de klasse flash.display.Loader of worden dynamisch gemaakt met de Bitmap()-constructor. Bij het laden van een afbeelding uit een externe bron kan een object Bitmap alleen afbeeldingen in de GIF-, JPEG- of PNG-indeling gebruiken. Wanneer deze is geïnstantieerd, kan de Bitmap-instantie worden beschouwd als een wrapper voor een object BitmapData dat moet worden gerenderd naar het werkgebied. Omdat een Bitmap-instantie een weergaveobject is, kunnen alle kenmerken en functies van weergaveobjecten ook worden gebruikt om een Bitmap-instantie te bewerken. Zie Weergave programmeren voor meer informatie over het werken met weergaveobjecten.

Pixels uitlijnen en vloeiend maken

Naast de functies die alle weergaveobjecten gemeen hebben, biedt de klasse Bitmap specifieke functies voor bitmapafbeeldingen.

De eigenschap pixelSnapping van de klasse Bitmap bepaalt of een Bitmap-object op de dichstbijzijnde pixel is uitgelijnd. Deze eigenschap accepteert een van deze drie constanten die in de klasse PixelSnapping zijn gedefinieerd: ALWAYS, AUTO en NEVER.

De syntaxis voor het toepassen van pixeluitlijning is als volgt:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

In veel gevallen worden bitmapafbeeldingen vaag en vervormd weergegeven wanneer ze worden geschaald. Met de eigenschap smoothing van de klasse BitmapData kunt u deze vervorming beperken. Wanneer deze Booleaanse eigenschap is ingesteld op true, worden de pixels in de afbeelding vloeiend gemaakt (anti-aliasing) wanneer deze wordt geschaald. Hierdoor wordt de afbeelding helderder en meer natuurgetrouw.

De klasse BitmapData

De klasse BitmapData, die zich in het pakket flash.display bevindt, kan worden vergeleken met een fotografische momentopname van de pixels in een geladen of dynamisch gemaakte bitmapafbeelding. Deze momentopname wordt weergegeven als een array van pixelgegevens in het object. De klasse BitmapData bevat ook een reeks ingebouwde methoden die nuttig zijn voor het maken en bewerken van pixelgegevens.

Gebruik de volgende code als u een object BitmapData wilt instantiëren:

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

Door de parameters width en height worden de afmetingen van de bitmap aangegeven. Vanaf AIR 3 en Flash Player 11 gelden er geen beperkingen meer voor de grootte van BitmapData-objecten. De maximale grootte van een bitmap is afhankelijk van het besturingssysteem.

In AIR 1.5 en Flash Player 10 is de maximale grootte voor een object BitmapData 8,191 pixels breed of hoog en mag het totale aantal pixels niet groter zijn dan 16,777,215 pixels. (Als een object BitmapData 8,191 pixels breed is, kan het daarom slechts 2048 pixels hoog zijn.) In Flash Player 9 en lager en AIR 1.1 en lager is de maximale hoogte 2880 en de maximale breedte 2880 pixels.

Met de parameter transparent geeft u op of in bitmapgegevens al dan niet een alfakanaal moet worden opgenomen (true of false). De parameter fillColor is een 32-bits kleurwaarde waarmee de achtergrondkleur en de transparantiewaarde (als deze is ingesteld op true) worden opgegeven. In het volgende voorbeeld wordt een object BitmapData met een oranje achtergrond gemaakt die voor 50 procent transparant is.

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

Als u een nieuw object BitmapData op het scherm wilt renderen, moet u het toewijzen aan of opnemen in een Bitmap-instantie. U kunt dit doen door het object BitmapData als een parameter van de constructor van het object Bitmap door te geven of toe te wijzen aan de eigenschap bitmapData van een bestaande Bitmap-instantie. Daarnaast moet u de Bitmap-instantie aan het weergaveoverzicht toevoegen door de methode addChild() of addChildAt() aan te roepen van de weergaveobjectcontainer die de Bitmap-instantie bevat. Zie Weergaveobjecten aan het weergaveoverzicht toevoegen voor meer informatie over het werken met het weergaveoverzicht.

In het volgende voorbeeld wordt een object BitmapData met een rode vulling gemaakt dat wordt weergegeven in een Bitmap-instantie.

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