Pakket | flash.display |
Klasse | public class BitmapData |
Overerving | BitmapData Object |
Implementatie | IBitmapDrawable |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
flash.display.Loader
.
Met deze klasse kunt u bitmaprenderingbewerkingen scheiden van de interne weergave van updateroutines in Flash Player. Door een object BitmapData rechtstreeks te bewerken, kunt u complexe afbeeldingen maken zonder de overhead van het constant opnieuw tekenen van de inhoud van vectorgegevens.
De methoden van de klasse BitmapData ondersteunen effecten die niet beschikbaar zijn via de filters die beschikbaar zijn voor andere weergaveobjecten dan bitmaps.
Een object BitmapData bevat een array van pixelgegevens. Deze gegevens kunnen een volledig dekkende bitmap of een transparante bitmap vertegenwoordigen die alpha-kanaalgegevens bevatten. Elk type object BitmapData wordt opgeslagen als een buffer van 32-bits gehele getallen. Elk 32-bits geheel getal bepaalt de eigenschappen van een enkele pixel in de bitmap.
Elk 32-bits geheel getal is een combinatie van vier 8-bits kanaalwaarden (van 0 tot en met 255) die de alpha-transparantie en de rood-, groen- en blauwwaarden (ARGB) van de pixel beschrijven. (Bij ARGB-waarden vertegenwoordigt de meest significante byte de waarde van het alpha-kanaal, gevolgd door rood, groen en blauw.)
De vier kanalen (rood, groen, blauw en alpha) worden als getallen vertegenwoordigd wanneer u ze gebruikt met de methode BitmapData.copyChannel()
of de eigenschappen DisplacementMapFilter.componentX
en DisplacementMapFilter.componentY
, en deze getallen worden door de volgende constanten in de klasse BitmapDataChannel vertegenwoordigd:
-
BitmapDataChannel.ALPHA
-
BitmapDataChannel.RED
-
BitmapDataChannel.GREEN
-
BitmapDataChannel.BLUE
U kunt objecten BitmapData aan een object Bitmap koppelen met de eigenschap bitmapData
van het object Bitmap.
U kunt een object BitmapData gebruiken om een object Graphics te vullen met de methode Graphics.beginBitmapFill()
.
In de AIR-runtime bevatten de klassen DockIcon, Icon, InteractiveIcon en SystemTrayIcon allemaal een eigenschap bitmaps
die een array is van BitmapData-objecten die de bitmapafbeeldingen voor een pictogram definiëren.
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.
Vanaf AIR 3 en Flash player 11 zijn de limieten voor de grootte van een BitmapData-object verwijderd. De maximale grootte van een bitmap is nu afhankelijk van het besturingssysteem.
Aanroepen van een methode of eigenschap van een object BitmapData resulteren in een ArgumentError-fout wanneer het object BitmapData ongeldig is (bijvoorbeeld bij height == 0
en width == 0
) of wanneer de eigenschap via dispose() is verwijderd.
Verwante API-elementen
flash.desktop.DockIcon.bitmaps
flash.display.Graphics.beginBitmapFill()
flash.desktop.Icon.bitmaps
flash.desktop.InteractiveIcon.bitmaps
flash.display.Loader
flash.desktop.SystemTrayIcon.bitmaps
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
height : int [alleen-lezen]
De hoogte van de bitmapafbeelding in pixels. | BitmapData | ||
rect : Rectangle [alleen-lezen]
De rechthoek die de grootte en de locatie van de bitmapafbeelding definieert. | BitmapData | ||
transparent : Boolean [alleen-lezen]
Definieert of de bitmapafbeelding transparantie per pixel ondersteunt. | BitmapData | ||
width : int [alleen-lezen]
De breedte van de bitmapafbeelding in pixels. | BitmapData |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een object BitmapData met een opgegeven breedte en hoogte. | BitmapData | ||
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Maakt een gefilterde afbeelding van een bronafbeelding en een filterobject. | BitmapData | ||
Retourneert een nieuw object BitmapData dat een kloon is van de oorspronkelijke instantie met een exacte kopie van de betreffende bitmap. | BitmapData | ||
Past de kleurwaarden in een opgegeven gebied van een bitmapafbeelding aan met een object ColorTransform. | BitmapData | ||
Vergelijkt twee objecten BitmapData. | BitmapData | ||
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Hiermee worden gegevens overgedragen van een kanaal van een ander object BitmapData of het huidige object BitmapData naar een kanaal van het huidige object BitmapData. | BitmapData | ||
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Biedt een snelle routine voor pixelmanipulatie tussen afbeeldingen zonder uitrek-, rotatie- of kleureffecten. | BitmapData | ||
Vult een bytearray uit een rechthoekig gebied met pixelgegevens. | BitmapData | ||
Maakt geheugen vrij dat voor opslag van het object BitmapData wordt gebruikt. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Tekent het bronweergaveobject op een bitmapafbeelding met de vectorrendermodule van Flash-runtime. | BitmapData | ||
drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Tekent het bronweergaveobject op een bitmapafbeelding met de vectorrendermodule van Flash-runtime. | BitmapData | ||
Hiermee wordt dit BitmapData-object gecomprimeerd met het geselecteerde compressoralgoritme, waarna een nieuw ByteArray-object wordt geretourneerd. | BitmapData | ||
Vult een rechthoekig gebied van pixels met een opgegeven ARGB-kleur. | BitmapData | ||
Voert een vlakvulling van een bepaalde kleur op een afbeelding uit vanaf een (x, y)-coördinaat. | BitmapData | ||
Bepaalt de doelrechthoek die door de aanroep van de methode applyFilter() wordt beïnvloed, op basis van een object BitmapData, een bronrechthoek en een filterobject. | BitmapData | ||
Bepaalt een rechthoekig gebied dat alle pixels van een opgegeven kleur binnen de bitmapafbeelding volledig omvat (wanneer de parameter findColor op true is ingesteld) of alle pixels die niet van de opgegeven kleur zijn (wanneer de parameter findColor op false is ingesteld). | BitmapData | ||
Retourneert een geheel getal dat een RGB-pixelwaarde van een object BitmapData op een specifiek punt (x, y) vertegenwoordigt. | BitmapData | ||
Retourneert een ARGB-kleurwaarde die alpha-kanaal- en RGB-gegevens bevat. | BitmapData | ||
Genereert een bytearray uit een rechthoekig gebied met pixelgegevens. | BitmapData | ||
Hiermee wordt een vectorarray gegenereerd uit een rechthoekig gebied met pixelgegevens. | BitmapData | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Berekent een histogram met binaire 256-waarde getallen van een BitmapData-object. | BitmapData | ||
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Voert raakdetectie op pixelniveau uit tussen een bitmapafbeelding en een punt, rechthoek of andere bitmapafbeelding. | BitmapData | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Vergrendelt een afbeelding zodanig dat alle objecten die verwijzen naar het object BitmapData, zoals objecten Bitmap, niet worden bijgewerkt wanneer dit object BitmapData verandert. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Voert overvloeiing per kanaal uit van een bronafbeelding naar een doelafbeelding. | BitmapData | ||
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Vult een afbeelding met pixels die willekeurige ruis vertegenwoordigen. | BitmapData | ||
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Wijst de kleurkanaalwaarden opnieuw toe in een afbeelding met maximaal vier arrays kleurenpaletgegevens, één voor elk kanaal. | BitmapData | ||
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Genereert een Perlin-ruisafbeelding. | BitmapData | ||
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Voert een pixelovervloeiing uit van een bronafbeelding naar een doelafbeelding of op dezelfde afbeelding. | BitmapData | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verschuift een afbeelding met een bepaald aantal pixels (x,y). | BitmapData | ||
Stelt een enkele pixel van een object BitmapData in. | BitmapData | ||
Stelt de kleur- en alpha-transparantiewaarden van een enkele pixel van een object BitmapData in. | BitmapData | ||
Zet een bytearray om in een rechthoekig gebied met pixelgegevens. | BitmapData | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Zet een Vector om in een rechthoekig gebied met pixelgegevens. | BitmapData | ||
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Test pixelwaarden in een afbeelding op basis van een opgegeven drempel en stelt nieuwe kleurwaarden in voor pixels die aan de test voldoen. | BitmapData | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Ontgrendelt een afbeelding zodanig dat alle objecten die verwijzen naar het object BitmapData, zoals objecten Bitmap, worden bijgewerkt wanneer dit object BitmapData verandert. | BitmapData | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
height | eigenschap |
rect | eigenschap |
rect:Rectangle
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
De rechthoek die de grootte en de locatie van de bitmapafbeelding definieert. De boven- en linkerkant van de rechthoek zijn 0; de breedte en hoogte zijn gelijk aan de breedte en hoogte in pixels van het object BitmapData.
Implementatie
public function get rect():Rectangle
transparent | eigenschap |
transparent:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Definieert of de bitmapafbeelding transparantie per pixel ondersteunt. U kunt deze waarde alleen instellen wanneer u een object BitmapData maakt door true
door te geven voor de parameter transparent
van de constructor. Wanneer u vervolgens een object BitmapData maakt, kunt u controleren of het object transparantie per pixel ondersteunt. De waarde van de eigenschap transparent
moet in dat geval true
zijn.
Implementatie
public function get transparent():Boolean
width | eigenschap |
BitmapData | () | Constructor |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Maakt een object BitmapData met een opgegeven breedte en hoogte. Wanneer u een waarde opgeeft voor de parameter fillColor
, wordt elke pixel in de bitmap op die kleur ingesteld.
De bitmap wordt standaard transparant gemaakt, tenzij u de waarde false
doorgeeft voor de parameter transparent
. Wanneer u een dekkende bitmap maakt, kunt u deze niet in een transparante bitmap wijzigen. Elke pixel in een dekkende bitmap gebruikt alleen 24-bits kleurkanaalinformatie. Wanneer u de bitmap definieert als transparant, gebruikt elke pixel 32-bits kleurkanaalinformatie, inclusief een alpha-transparantiekanaal.
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 pixels en de maximale breedte 2880 pixels. Wanneer u een waarde width of height opgeeft die groter is dan 2880, wordt geen nieuwe instantie gemaakt.
Parameterswidth:int — De breedte van de bitmapafbeelding in pixels.
| |
height:int — De hoogte van de bitmapafbeelding in pixels.
| |
transparent:Boolean (default = true ) — Geeft op of de bitmapafbeelding transparantie per pixel ondersteunt. De standaardwaarde is true (transparant). Wanneer u een volledig transparante bitmap wilt maken, stelt u de waarde van de parameter transparent in op true en de waarde van de parameter fillColor op 0x00000000 (of 0). Wanneer de eigenschap transparent op false wordt ingesteld, kan dit resulteren in lichte verbeteringen in de renderprestaties.
| |
fillColor:uint (default = 0xFFFFFFFF ) — Een 32-bits ARGB-kleurwaarde die u gebruikt om het bitmapafbeeldingsgebied te vullen. De standaardwaarde is 0xFFFFFFFF (effen wit).
|
Gegenereerde uitzondering
ArgumentError — De breedte en/of de hoogte overschrijden de maximale afmetingen.
|
applyFilter | () | methode |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Maakt een gefilterde afbeelding van een bronafbeelding en een filterobject.
Deze methode is afhankelijk van het gedrag van ingebouwde filterobjecten waarmee wordt bepaald welke doelrechthoek door een invoerbronrechthoek wordt beïnvloed.
Nadat een filter is toegepast, kan de resulterende afbeelding groter zijn dan de invoerafbeelding. Wanneer u bijvoorbeeld een klasse BlurFilter gebruikt om een bronrechthoek (50,50,100,100) en een bestemmingspunt (10,10) te vervagen, is het gebied dat in de doelafbeelding verandert groter dan (10,10,60,60) als gevolg van het vervagen. Dit gebeurt intern tijdens de aanroep van applyFilter()
.
Wanneer de parameter sourceRect
van de parameter sourceBitmapData
een intern gebied is, zoals (50,50,100,100) in een afbeelding van 200 x 200, gebruikt het filter de bronpixels buiten de parameter sourceRect
om de doelrechthoek te genereren.
Wanneer het object BitmapData en het object dat als de parameter sourceBitmapData
is opgegeven hetzelfde object zijn, wordt in de toepassing een tijdelijke kopie van het object gebruikt om het filter uit te voeren. Voor optimale prestaties moet u deze situatie voorkomen.
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of kan naar de huidige instantie BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het punt binnen de doelafbeelding (de huidige instantie BitmapData) dat overeenkomt met de linkerbovenhoek van de bronrechthoek.
| |
filter:BitmapFilter — Het filterobject dat u gebruikt om de filterbewerking uit te voeren. Elk type filter heeft bepaalde vereisten, zoals hieronder wordt opgesomd:
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect of destPoint of filter is null.
| |
IllegalOperationError — De transparantie van de objecten BitmapData is niet compatibel met de filterbewerking.
|
Verwante API-elementen
flash.filters.BlurFilter
flash.filters.ColorMatrixFilter
flash.filters.ConvolutionFilter
flash.filters.DisplacementMapFilter
flash.filters.DropShadowFilter
flash.filters.GlowFilter
flash.display.DisplayObject.filters
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
clone | () | methode |
public function clone():BitmapData
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retourneert een nieuw object BitmapData dat een kloon is van de oorspronkelijke instantie met een exacte kopie van de betreffende bitmap.
Geretourneerde waardeBitmapData — Een nieuw object BitmapData dat identiek is aan het origineel.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2);
colorTransform | () | methode |
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Past de kleurwaarden in een opgegeven gebied van een bitmapafbeelding aan met een object ColorTransform
. Wanneer de zijden van de rechthoek overeenkomen met de grenzen van de bitmapafbeelding, worden de kleurwaarden van de hele afbeelding met deze methode getransformeerd.
Parameters
rect:Rectangle — Een object Rectangle waarmee het gebied van de afbeelding wordt gedefinieerd waarin het object ColorTransform wordt toegepast.
| |
colorTransform:flash.geom:ColorTransform — Een object ColorTransform dat de kleurtransformatiewaarden beschrijft die moeten worden toegepast.
|
Gegenereerde uitzondering
TypeError — De waarde voor rect of colorTransform is null.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
compare | () | methode |
public function compare(otherBitmapData:BitmapData):Object
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Vergelijkt twee objecten BitmapData. Wanneer de twee objecten BitmapData dezelfde afmetingen (breedte en hoogte) hebben, retourneert de methode een nieuw object BitmapData waarin elke pixel is gebaseerd op het 'verschil' tussen de pixels in de twee bronobjecten.
- Wanneer twee pixels overeenkomen, is de verschilpixel 0x00000000.
- Wanneer twee pixels verschillende RGB-waarden hebben (de alpha-waarde wordt genegeerd), is de verschilpixel 0xRRGGBB. Hierbij staan RR/GG/BB voor de afzonderlijke verschillen tussen de waarden van rode, groene en blauwe kanalen (de pixelwaarde in het bronobject min de pixelwaarde in het object
otherBitmapData
). In dit geval worden alpha-kanaalverschillen genegeerd. - Wanneer alleen de alpha-kanaalwaarde afwijkt, is de pixelwaarde 0xZZFFFFFF, waarbij ZZ staat voor het verschil in de alpha-waarden (de alpha-waarde in het bronobject min de alpha-waarde in het object
otherBitmapData
).
Bekijk bijvoorbeeld de volgende twee objecten BitmapData:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Opmerking: de kleuren waarmee de twee objecten BitmapData zijn gevuld, hebben iets afwijkende RGB-waarden (0xFF0000 en 0xFFAA00). Het resultaat van de methode compare()
is een nieuw object BitmapData waarbij elke pixel het verschil in de RGB-waarden tussen de twee bitmaps aangeeft.
Bekijk de volgende twee objecten BitmapData waarin de RGB-kleuren overeenkomen, maar de alpha-waarden verschillen:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff
Het resultaat van de methode compare()
is een nieuw object BitmapData waarbij elke pixel het verschil in de alpha-waarden tussen de twee bitmaps aangeeft.
Wanneer de objecten BitmapData equivalent zijn (met dezelfde breedte, hoogte en identieke pixelwaarden), retourneert de methode het getal 0.
Wanneer de objecten BitmapData verschillende breedten hebben, retourneert de methode het getal -3.
Wanneer de objecten BitmapData verschillende hoogten hebben, maar wel dezelfde breedte, retourneert de methode het getal -4.
In het volgende voorbeeld worden twee objecten Bitmap met verschillende breedten (50 en 60) vergeleken:
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Parameters
otherBitmapData:BitmapData — Het object BitmapData dat met het bronobject BitmapData moet worden vergeleken.
|
Object — Wanneer de twee objecten BitmapData dezelfde afmetingen (breedte en hoogte) hebben, retourneert de methode een nieuw object BitmapData dat het verschil tussen de twee objecten bevat (zie de hoofdbeschrijving). Wanneer de objecten BitmapData equivalent zijn, retourneert de methode het getal 0. Wanneer de objecten BitmapData verschillende breedten hebben, retourneert de methode het getal -3. Wanneer de objecten BitmapData verschillende hoogten hebben, retourneert de methode het getal -4.
|
Gegenereerde uitzondering
TypeError — De waarde voor otherBitmapData is null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel | () | methode |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Hiermee worden gegevens overgedragen van een kanaal van een ander object BitmapData of het huidige object BitmapData naar een kanaal van het huidige object BitmapData. Alle gegevens in de andere kanalen in het doelobject BitmapData blijven behouden.
De bronkanaalwaarde en de doelkanaalwaarde kunnen een van de volgende waarden zijn:
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of kan naar het huidige object BitmapData verwijzen.
| |
sourceRect:Rectangle — Het bronobject Rectangle. Wanneer u alleen kanaalgegevens vanuit een kleiner gebied in de bitmap wilt kopiëren, geeft u een bronrechthoek op die kleiner is dan de totale grootte van het object BitmapData.
| |
destPoint:Point — Het doelobject Point dat de linkerbovenhoek vertegenwoordigt van de rechthoek waarin de nieuwe kanaalgegevens worden opgenomen. Wanneer u kanaalgegevens alleen van het ene naar het andere gebied in de doelafbeelding wilt kopiëren, geeft u een ander punt op dan (0,0).
| |
sourceChannel:uint — Het bronkanaal. Gebruik een waarde uit de klasse BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
| |
destChannel:uint — Het doelkanaal. Gebruik een waarde uit de klasse BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect of destPoint is null.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
copyPixels | () | methode |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Biedt een snelle routine voor pixelmanipulatie tussen afbeeldingen zonder uitrek-, rotatie- of kleureffecten. Deze methode kopieert een rechthoekig gebied van een bronafbeelding naar een rechthoekig gebied met dezelfde grootte op het bestemmingspunt van het doelobject BitmapData.
Wanneer u de parameters alphaBitmap
en alphaPoint
opneemt, kunt u een secundaire afbeelding als een alpha-bron voor de bronafbeelding gebruiken. Wanneer de bronafbeelding alpha-gegevens bevat, worden beide sets alpha-gegevens gebruikt om pixels van de bronafbeelding voor de doelafbeelding samen te stellen. De parameter alphaPoint
is het punt in de alpha-afbeelding dat overeenkomt met de linkerbovenhoek van de bronafbeelding. Pixels buiten het doorsnedegebied van de bronafbeelding en alpha-afbeelding worden niet naar de doelafbeelding gekopieerd.
De eigenschap mergeAlpha
bepaalt of het alpha-kanaal wordt gebruikt wanneer een transparante afbeelding naar een andere transparante afbeelding wordt gekopieerd. Wanneer u pixels met de alpha-kanaalgegevens wilt kopiëren, stelt u de eigenschap mergeAlpha
in op true
. Standaard is de eigenschap mergeAlpha
op false
ingesteld.
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding waaruit pixels moeten worden gekopieerd. De bronafbeelding kan een andere instantie BitmapData zijn of kan naar de huidige instantie BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het doelpunt dat de linkerbovenhoek vertegenwoordigt van de rechthoek waarin de nieuwe pixels worden opgenomen.
| |
alphaBitmapData:BitmapData (default = null ) — Een secundaire alpha-objectbron BitmapData.
| |
alphaPoint:Point (default = null ) — Het punt in de alpha-objectbron BitmapData dat overeenkomt met de linkerbovenhoek van de parameter sourceRect .
| |
mergeAlpha:Boolean (default = false ) — Wanneer u het alpha-kanaal wilt gebruiken, stelt u de waarde in op true . Wanneer u pixels zonder alpha-kanaal wilt kopiëren, stelt u de waarde in op false .
|
Gegenereerde uitzondering
TypeError — De waarden voor sourceBitmapData, sourceRect en destPoint zijn null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
copyPixelsToByteArray | () | methode |
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.4, AIR 3.4 |
Vult een bytearray uit een rechthoekig gebied met pixelgegevens. Vanaf de position
-index van de ByteArray schrijft deze methode voor elke pixel een geheel getal zonder teken (een niet-vermenigvuldigde 32-bits pixelwaarde) in de bytearray. Indien nodig, wordt de grootte van de bytearray aangepast aan het aantal bytes dat nodig is om alle pixels op te nemen.
Parameters
rect:Rectangle — Een rechthoekig gebied in het huidige object BitmapData
| |
data:ByteArray — het ByteArray-doelobject
|
Gegenereerde uitzondering
TypeError — als het rect -argument de waarde null heeft of als het data -argument de waarde null heeft
|
Verwante API-elementen
dispose | () | methode |
public function dispose():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Maakt geheugen vrij dat voor opslag van het object BitmapData wordt gebruikt.
Wanneer de methode dispose()
voor een afbeelding wordt aangeroepen, worden de breedte en hoogte van de afbeelding op 0 ingesteld. Alle volgende aanroepen van methoden of eigenschappen van deze instantie BitmapData mislukken en er wordt een uitzondering gegenereerd.
BitmapData.dispose()
geeft direct geheugen vrij dat bezet wordt door werkelijke bitmapgegevens (een bitmap kan maximaal 64 MB geheugen consumeren). Nadat u BitmapData.dispose()
gebruikt, is het BitmapData-object niet meer bruikbaar en de Flash-runtime geeft een uitzondering weer als u functies oproept in het BitmapData-object. BitmapData.dispose()
verzamelt geen ongewenste details van het BitmapData-object (ongeveer 128 bytes); het geheugen dat wordt bezet door het werkelijke BitmapData-object, wordt vrijgegeven wanneer het BitmapData-object door de verzamelaar van ongewenste details verzameld.
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
dispose()
is aangeroepen (er wordt een uitzondering gegenereerd):
import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
draw | () | methode |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Tekent het bron
weergaveobject op een bitmapafbeelding met de vectorrendermodule van Flash-runtime. U kunt de parameters matrix
, colorTransform
, blendMode
en de doelparameter clipRect
opgeven om te bepalen hoe de rendering wordt uitgevoerd. U kunt ook opgeven of de bitmap vloeiend moet worden gemaakt wanneer deze wordt geschaald (dit werkt alleen wanneer het bronobject een object BitmapData is).
Opmerking: De methodedrawWithQuality()
werkt precies zoals de methode draw()
, maar in plaats van de eigenschap Stage.quality
te gebruiken om de vectorrenderingkwaliteit te bepalen, geeft u de parameter quality
op voor de methode drawWithQuality()
.
Deze methode houdt rechtstreeks verband met de wijze waarop objecten worden getekend met de standaardvectorrendermodule voor objecten in de ontwerpgereedschapinterface.
Het bronweergaveobject gebruikt geen van de toegepaste transformaties voor deze aanroep. Het object wordt gebruikt zoals het in de bibliotheek of het bestand bestaat, zonder matrixtransformatie, zonder kleurtransformatie en zonder overvloeimodus. Wanneer u een weergaveobject (zoals een filmclip) wilt tekenen op basis van de eigen transformatie-eigenschappen, kunt u het eigenschapsobject transform
kopiëren naar de eigenschap transform
van het object Bitmap dat het object BitmapData gebruikt.
Deze methode wordt ondersteund via RTMP in Flash Player 9.0.115.0 en hoger en in Adobe AIR. U kunt toegang tot streams op Flash Media Server beheren in een serverscript. Zie de eigenschappen Client.audioSampleAccess
en Client.videoSampleAccess
in Server-Side ActionScript Language Reference for Adobe Flash Media Server voor meer informatie.
Als het bronobject en (in het geval van een object Sprite of MovieClip) alle onderliggende objecten ervan niet uit hetzelfde domein als de aanroeper komen of zich niet in een bestand bevinden dat door de aanroeper kan worden benaderd door de methode Security.allowDomain()
aan te roepen, genereert een aanroep van draw()
een SecurityError-fout. Deze beperking is niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
Er gelden ook beperkingen bij het gebruik van een geladen bitmapafbeelding als de source
. Een aanroep van de methode draw()
is geslaagd als de geladen afbeelding afkomstig is uit hetzelfde domein als de aanroeper. Een bestand met interdomeinbeleid op de server van de afbeelding kan het domein ook toegang verlenen tot het domein van de SWF-inhoud die de methode draw()
aanroept. In dit geval moet u de eigenschap checkPolicyFile
van een object LoaderContext instellen en dit object gebruiken als de parameter context
bij het aanroepen van de methode load()
van het object Loader waarmee de afbeelding wordt geladen. Deze beperkingen zijn niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
In Windows kan de methode draw()
geen SWF-inhoud vastleggen die is ingesloten in een HTML-pagina in een object HTMLLoader in Adobe AIR.
De methode draw()
kan geen PDF-inhoud vastleggen in Adobe AIR. De methode kan ook geen SWF-inhoud vastleggen die is ingesloten in HTML waarin het kenmerk wmode
is ingesteld op window
in Adobe AIR.
Parameters
source:IBitmapDrawable — Het weergaveobject of het object BitmapData waarmee het object BitmapData moet worden getekend. (Met de klassen DisplayObject en BitmapData wordt de IBitmapDrawable-interface geïmplementeerd.)
| |
matrix:Matrix (default = null ) — Een object Matrix dat wordt gebruikt om de coördinaten van de bitmap te schalen, roteren of transleren. Wanneer u geen matrixtransformatie op de afbeelding wilt toepassen, stelt u deze parameter in op een identiteitsmatrix die met de standaardconstructor new Matrix() is gemaakt of geeft u de waarde null door.
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Een object ColorTransform waarmee u de kleurwaarden van de bitmap kunt aanpassen. Wanneer geen object wordt opgegeven, worden de kleuren van de bitmapafbeelding niet getransformeerd. Wanneer u deze parameter moet doorgeven maar de afbeelding niet wilt transformeren, stelt u deze parameter in op een object ColorTransform dat met de standaardconstructor new ColorTransform() is gemaakt.
| |
blendMode:String (default = null ) — Een tekenreekswaarde uit de klasse flash.display.BlendMode die opgeeft welke overvloeimodus op de resulterende bitmap moet worden toegepast.
| |
clipRect:Rectangle (default = null ) — Een object Rectangle dat bepaalt welk gebied van het bronobject moet worden getekend. Wanneer u deze waarde niet opgeeft, wordt er niet geknipt en wordt het gehele bronobject getekend.
| |
smoothing:Boolean (default = false ) — Een Booleaanse waarde die bepaalt of een object BitmapData vloeiend moet worden gemaakt wanneer het wordt geschaald of geroteerd als gevolg van schaling of rotatie in de parameter matrix . De parameter smoothing wordt alleen toegepast wanneer de parameter source een object BitmapData is. Wanneer smoothing op false is ingesteld, kan de geroteerde of geschaalde BitmapData-afbeelding korrelig of oneffen worden weergegeven. De volgende twee afbeeldingen gebruiken bijvoorbeeld hetzelfde object BitmapData voor de parameter source , maar de parameter smoothing is links op true ingesteld en rechts op false :
Wanneer voor een bitmap |
Gegenereerde uitzondering
ArgumentError — De parameter source is geen object BitmapData of DisplayObject.
| |
SecurityError — Het object source en (in het geval van een object Sprite of MovieClip) alle onderliggende objecten ervan komen niet uit hetzelfde domein als de aanroeper of bevinden zich niet in een bestand dat door de aanroeper kan worden benaderd door de methode Security.allowDomain() aan te roepen. Deze beperking is niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
| |
ArgumentError — De bron is null of geen geldig object IBitmapDrawable.
|
Verwante API-elementen
flash.display.Stage.quality
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
drawWithQuality | () | methode |
public function drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.3, AIR 3.3 |
Tekent het bron
weergaveobject op een bitmapafbeelding met de vectorrendermodule van Flash-runtime. U kunt de parameters matrix
, colorTransform
, blendMode
en de doelparameter clipRect
opgeven om te bepalen hoe de rendering wordt uitgevoerd. U kunt ook opgeven of de bitmap vloeiend moet worden gemaakt wanneer deze wordt geschaald (dit werkt alleen wanneer het bronobject een object BitmapData is).
Opmerking: De methodedrawWithQuality()
werkt precies zoals de methode draw()
, maar in plaats van de eigenschap Stage.quality
te gebruiken om de vectorrenderingkwaliteit te bepalen, geeft u de parameter quality
op voor de methode drawWithQuality()
.
Deze methode houdt rechtstreeks verband met de wijze waarop objecten worden getekend met de standaardvectorrendermodule voor objecten in de ontwerpgereedschapinterface.
Het bronweergaveobject gebruikt geen van de toegepaste transformaties voor deze aanroep. Het object wordt gebruikt zoals het in de bibliotheek of het bestand bestaat, zonder matrixtransformatie, zonder kleurtransformatie en zonder overvloeimodus. Wanneer u een weergaveobject (zoals een filmclip) wilt tekenen op basis van de eigen transformatie-eigenschappen, kunt u het eigenschapsobject transform
kopiëren naar de eigenschap transform
van het object Bitmap dat het object BitmapData gebruikt.
Deze methode wordt ondersteund via RTMP in Flash Player 9.0.115.0 en hoger en in Adobe AIR. U kunt toegang tot streams op Flash Media Server beheren in een serverscript. Zie de eigenschappen Client.audioSampleAccess
en Client.videoSampleAccess
in de Server-Side ActionScript Language Reference for Adobe Flash Media Server voor meer informatie.
Als het bronobject en (in het geval van een object Sprite of MovieClip) alle bijbehorende onderliggende objecten niet uit hetzelfde domein als de aanroeper komen of zich niet in een bestand bevinden dat door de aanroeper kan worden benaderd door de methode Security.allowDomain()
aan te roepen, genereert een aanroep van drawWithQuality()
een SecurityError-fout. Deze beperking is niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
Er gelden ook beperkingen bij het gebruik van een geladen bitmapafbeelding als de source
. Een aanroep van de methode drawWithQuality()
is geslaagd als de geladen afbeelding afkomstig is uit hetzelfde domein als de aanroeper. Een bestand met interdomeinbeleid op de server van de afbeelding kan het domein ook toegang verlenen tot het domein van de SWF-inhoud die de methode drawWithQuality()
aanroept. In dit geval moet u de eigenschap checkPolicyFile
van een object LoaderContext instellen en dit object gebruiken als de parameter context
bij het aanroepen van de methode load()
van het object Loader waarmee de afbeelding wordt geladen. Deze beperkingen zijn niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
In Windows kan de methode drawWithQuality()
geen SWF-inhoud vastleggen die is ingesloten in een HTML-pagina in een object HTMLLoader in Adobe AIR.
De methode drawWithQuality()
kan geen PDF-inhoud vastleggen in Adobe AIR. De methode kan ook geen SWF-inhoud vastleggen die is ingesloten in HTML waarin het kenmerk wmode
is ingesteld op window
in Adobe AIR.
Parameters
source:IBitmapDrawable — Het weergaveobject of het object BitmapData waarmee het object BitmapData moet worden getekend. (Met de klassen DisplayObject en BitmapData wordt de IBitmapDrawable-interface geïmplementeerd.)
| |
matrix:Matrix (default = null ) — Een object Matrix dat wordt gebruikt om de coördinaten van de bitmap te schalen, roteren of transleren. Wanneer u geen matrixtransformatie op de afbeelding wilt toepassen, stelt u deze parameter in op een identiteitsmatrix die met de standaardconstructor new Matrix() is gemaakt of geeft u de waarde null door.
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Een object ColorTransform waarmee u de kleurwaarden van de bitmap kunt aanpassen. Wanneer geen object wordt opgegeven, worden de kleuren van de bitmapafbeelding niet getransformeerd. Wanneer u deze parameter moet doorgeven maar de afbeelding niet wilt transformeren, stelt u deze parameter in op een object ColorTransform dat met de standaardconstructor new ColorTransform() is gemaakt.
| |
blendMode:String (default = null ) — Een tekenreekswaarde uit de klasse flash.display.BlendMode die opgeeft welke overvloeimodus op de resulterende bitmap moet worden toegepast.
| |
clipRect:Rectangle (default = null ) — Een object Rectangle dat bepaalt welk gebied van het bronobject moet worden getekend. Wanneer u deze waarde niet opgeeft, wordt er niet geknipt en wordt het gehele bronobject getekend.
| |
smoothing:Boolean (default = false ) — Een Booleaanse waarde die bepaalt of een object BitmapData vloeiend moet worden gemaakt wanneer het wordt geschaald of geroteerd als gevolg van schaling of rotatie in de parameter matrix . De parameter smoothing wordt alleen toegepast wanneer de parameter source een object BitmapData is. Wanneer smoothing op false is ingesteld, kan de geroteerde of geschaalde BitmapData-afbeelding korrelig of oneffen worden weergegeven. De volgende twee afbeeldingen gebruiken bijvoorbeeld hetzelfde object BitmapData voor de parameter source , maar de parameter smoothing is links op true ingesteld en rechts op false :
Wanneer voor een bitmap | |
quality:String (default = null ) — Een van de StageQuality-waarden. Hiermee wordt de antialiaskwaliteit geselecteerd die wordt gebruikt bij het tekenen van vectorafbeeldingen.
|
Gegenereerde uitzondering
ArgumentError — De parameter source is geen object BitmapData of DisplayObject.
| |
SecurityError — Het object source en (in het geval van een object Sprite of MovieClip) alle onderliggende objecten ervan komen niet uit hetzelfde domein als de aanroeper of bevinden zich niet in een bestand dat door de aanroeper kan worden benaderd door de methode Security.allowDomain() aan te roepen. Deze beperking is niet van toepassing op AIR-inhoud in de beveiligingssandbox van de toepassing.
| |
ArgumentError — De bron is null of geen geldig object IBitmapDrawable.
|
Verwante API-elementen
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.drawWithQuality(tf, , , , , , StageQuality.LOW); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
encode | () | methode |
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.3, AIR 3.3 |
Hiermee wordt dit BitmapData-object gecomprimeerd met het geselecteerde compressoralgoritme, waarna een nieuw ByteArray-object wordt geretourneerd. Optioneel worden de resulterende gegevens naar de opgegeven ByteArray geschreven. Met het argument compressor
wordt het coderingsalgoritme aangeduid. Dit kan PNGEncoderOptions, JPEGEncoderOptions of JPEGXREncoderOptions zijn.
In het volgende voorbeeld wordt een BitmapData-object gecomprimeerd met de volgende JPEGEncoderOptions:
// Compress a BitmapData object as a JPEG file. var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00); var byteArray:ByteArray = new ByteArray(); bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray);
Parameters
rect:Rectangle — Het gebied van het BitmapData-object dat wordt gecomprimeerd.
| |
compressor:Object — Het compressortype dat wordt gebruikt. Geldige waarden zijn: flash.display.PNGEncoderOptions , flash.display.JPEGEncoderOptions en flash.display.JPEGXREncoderOptions .
| |
byteArray:ByteArray (default = null ) — De uitvoer-ByteArray die de gecodeerde afbeelding bevat.
|
ByteArray — Een ByteArray die de gecodeerde afbeelding bevat.
|
Verwante API-elementen
fillRect | () | methode |
public function fillRect(rect:Rectangle, color:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Vult een rechthoekig gebied van pixels met een opgegeven ARGB-kleur.
Parameters
rect:Rectangle — Het rechthoekige gebied dat moet worden gevuld.
| |
color:uint — De ARGB-kleurwaarde waarmee het gebied wordt gevuld. ARGB-kleuren worden vaak in hexadecimale indeling opgegeven (bijvoorbeeld 0xFF336699).
|
Gegenereerde uitzondering
TypeError — De waarde voor rect is null.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
floodFill | () | methode |
public function floodFill(x:int, y:int, color:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Voert een vlakvulling uit op een afbeelding, beginnend bij een (x, y)-coördinaat en vullend met een bepaalde kleur. De methode floodFill()
is vergelijkbaar met het emmertje dat beschikbaar is in verscheidene tekenprogramma's. De kleur is een ARGB-kleur die alpha- en kleurinformatie bevat.
Parameters
x:int — De x-coördinaat van de afbeelding.
| |
y:int — De y-coördinaat van de afbeelding.
| |
color:uint — De ARGB-kleur die als vulling moet worden gebruikt.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
(10, 10)
is gedefinieerd, en waarin alle kleuren overeenkomen met de kleur in dat punt, met rood gevuld.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
generateFilterRect | () | methode |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Bepaalt welke doelrechthoek door de aanroep van de methode applyFilter()
wordt beïnvloed, op basis van een object BitmapData, een bronrechthoek en een filterobject.
Een vervagend filter beïnvloedt bijvoorbeeld doorgaans een gebied dat groter is dan de oorspronkelijke afbeelding. Een afbeelding van 100 x 200 pixels die door een standaardinstantie van BlurFilter wordt gefilterd, waarbij blurX = blurY = 4
, genereert een doelrechthoek van (-2,-2,104,204)
. Met de methode generateFilterRect()
kunt u de grootte van deze doelrechthoek vooraf achterhalen, zodat u de juiste grootte van de doelafbeelding kunt bepalen voordat u een filterbewerking uitvoert.
Sommige filters snijden de doelrechthoek uit op basis van de grootte van de bronafbeelding. Met DropShadow
wordt bijvoorbeeld geen resultaat gegenereerd dat groter is dan de bronafbeelding. In deze API wordt het object BitmapData gebruikt voor de brongrenzen, niet voor de bronparameter rect
.
Parameters
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
filter:BitmapFilter — Een filterobject dat u gebruikt om de doelrechthoek te berekenen.
|
Rectangle — Een doelrechthoek die wordt berekend op basis van een afbeelding, de parameter sourceRect en een filter.
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceRect of filter is null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
generateFilterRect()
kunt gebruiken om te bepalen in welk rechthoekig gebied het resultaat van een vervagend filter wordt opgenomen. De resultaten van de methode generateFilterRect()
worden met de functie trace()
uitgevoerd:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
generateFilterRect()
wordt het filter niet toegepast. Roep de methode applyFilter()
aan om het filter toe te passen.
getColorBoundsRect | () | methode |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Bepaalt een rechthoekig gebied dat alle pixels van een opgegeven kleur binnen de bitmapafbeelding volledig omvat (wanneer de parameter findColor
op true
is ingesteld) of alle pixels die niet van de opgegeven kleur zijn (wanneer de parameter findColor
op false
is ingesteld).
Wanneer u voor een bronafbeelding bijvoorbeeld de rechthoek van de afbeelding wilt bepalen die een alpha-kanaal met een andere waarde dan nul bevat, geeft u {mask: 0xFF000000, color: 0x00000000}
door als parameters. Wanneer de parameter findColor
op true
is ingesteld, wordt de gehele afbeelding doorzocht op de grenzen van pixels waarvoor geldt: (value & mask) == color
(waarbij value
de kleurwaarde van de pixel is). Wanneer de parameter findColor
op false
is ingesteld, wordt de gehele afbeelding doorzocht op de grenzen van pixels waarvoor geldt: (value & mask) != color
(waarbij value
de kleurwaarde van de pixel is). Wanneer u de witruimte rondom een afbeelding wilt bepalen, geeft u {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}
door om de grenzen van niet-witte pixels te vinden.
Parameters
mask:uint — Een hexadecimale waarde die opgeeft welke bits van de ARGB-kleur moeten worden gebruikt. De kleurwaarde wordt met deze hexadecimale waarde gecombineerd met de operator & (bitsgewijze AND).
| |
color:uint — Een hexadecimale waarde waarmee wordt opgegeven met welke ARGB-kleur de kleur moet overeenkomen (wanneer findColor op true is ingesteld) of niet moet overeenkomen (wanneer findColor op false is ingesteld).
| |
findColor:Boolean (default = true ) — Wanneer de waarde op true is ingesteld, worden de grenzen van een kleurwaarde in een afbeelding geretourneerd. Wanneer de waarde op false is ingesteld, worden de grenzen van het gebied waar deze kleur niet aanwezig is, geretourneerd.
|
Rectangle — Het gebied van de afbeelding dat de opgegeven kleur bevat.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
getColorBoundsRect()
aangeroepen om de rechthoek te bepalen waarin pixels rood zijn (0xFF0000). Daarna wordt dezelfde methode aangeroepen om de rechthoek te bepalen waarin pixels niet rood zijn (door de parameter findColor
op false
in te stellen':
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel | () | methode |
public function getPixel(x:int, y:int):uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retourneert een geheel getal dat een RGB-pixelwaarde van een object BitmapData op een specifiek punt (x, y) vertegenwoordigt. De methode getPixel()
retourneert een niet-vermenigvuldigde pixelwaarde. Er wordt geen alpha-informatie geretourneerd.
Alle pixels in een object BitmapData worden als vooraf vermenigvuldigde kleurwaarden opgeslagen. Bij een vooraf vermenigvuldigde afbeeldingspixel zijn de rode, groene en blauwe kleurkanaalwaarden al door de alpha-gegevens vermenigvuldigd. Wanneer de alpha-waarde bijvoorbeeld 0 is, zijn de waarden voor de RGB-kanalen ook 0, onafhankelijk van de niet-vermenigvuldigde waarden. Dit verlies van gegevens kan problemen veroorzaken wanneer u bewerkingen uitvoert. Alle BitmapData-methoden gebruiken en retourneren niet-vermenigvuldigde waarden. De interne pixelrepresentatie wordt omgezet van vooraf vermenigvuldigd in niet vermenigvuldigd voordat deze als een waarde wordt geretourneerd. Tijdens het instellen wordt de pixelwaarde vooraf vermenigvuldigd voordat de onbewerkte afbeeldingspixel wordt ingesteld.
Parameters
x:int — De x-positie van de pixel.
| |
y:int — De y-positie van de pixel.
|
uint — Een getal dat een RGB-pixelwaarde vertegenwoordigt. Wanneer de x- en y-coördinaten zich buiten de grenzen van de afbeelding bevinden, retourneert de methode 0.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
getPixel()
gebruikt om de kleurwaarde van de pixel in de linkerbovenhoek te bepalen:
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32 | () | methode |
public function getPixel32(x:int, y:int):uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retourneert een ARGB-kleurwaarde die alpha-kanaal- en RGB-gegevens bevat. Deze methode is vergelijkbaar met de methode getPixel()
, waarmee een RGB-kleur zonder alpha-kanaalgegevens wordt geretourneerd.
Alle pixels in een object BitmapData worden als vooraf vermenigvuldigde kleurwaarden opgeslagen. Bij een vooraf vermenigvuldigde afbeeldingspixel zijn de rode, groene en blauwe kleurkanaalwaarden al door de alpha-gegevens vermenigvuldigd. Wanneer de alpha-waarde bijvoorbeeld 0 is, zijn de waarden voor de RGB-kanalen ook 0, onafhankelijk van de niet-vermenigvuldigde waarden. Dit verlies van gegevens kan problemen veroorzaken wanneer u bewerkingen uitvoert. Alle BitmapData-methoden gebruiken en retourneren niet-vermenigvuldigde waarden. De interne pixelrepresentatie wordt omgezet van vooraf vermenigvuldigd in niet vermenigvuldigd voordat deze als een waarde wordt geretourneerd. Tijdens het instellen wordt de pixelwaarde vooraf vermenigvuldigd voordat de onbewerkte afbeeldingspixel wordt ingesteld.
Parameters
x:int — De x-positie van de pixel.
| |
y:int — De y-positie van de pixel.
|
uint — Een getal dat een ARGB-pixelwaarde vertegenwoordigt. Wanneer de x- en y-coördinaten zich buiten de grenzen van de afbeelding bevinden, wordt 0 geretourneerd.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
getPixel32()
gebruikt om de kleurwaarde van de pixel in de linkerbovenhoek te bepalen. Daarna worden de hexadecimale waarden voor elke kleurcomponent (alpha, rood, groen en blauw) bepaald:
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixels | () | methode |
public function getPixels(rect:Rectangle):ByteArray
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Genereert een bytearray uit een rechthoekig gebied met pixelgegevens. Schrijft voor elke pixel een geheel getal zonder teken (een niet-vermenigvuldigde 32-bits pixelwaarde) in de bytearray.
Parameters
rect:Rectangle — Een rechthoekig gebied in het huidige object BitmapData.
|
ByteArray — Een bytearray die de pixels in het opgegeven object Rectangle vertegenwoordigt.
|
Gegenereerde uitzondering
TypeError — De waarde voor rect is null.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
getPixels()
gebruikt om een object ByteArray te vullen met de pixelwaarden van het object BitmapData.
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds);
getVector | () | methode |
public function getVector(rect:Rectangle):Vector.<uint>
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee wordt een vectorarray gegenereerd uit een rechthoekig gebied met pixelgegevens. Retourneert een Vector-object voor de opgegeven rechthoek dat bestaat uit gehele getallen zonder teken (een 32-bits, niet-vermenigvuldigde pixelwaarde).
Parameters
rect:Rectangle — Een rechthoekig gebied in het huidige object BitmapData.
|
Vector.<uint> — Een vector die de opgegeven rechthoek voorstelt.
|
Gegenereerde uitzondering
TypeError — De waarde voor rect is null.
|
histogram | () | methode |
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Berekent een histogram met binaire 256-waarde getallen van een BitmapData-object. Deze methode retourneert een Vector-object dat vier andere Vector-objecten bevat.<Number> instanties (vier Vector-objecten die Number-objecten bevatten). De vier Vector-instanties geven respectievelijk de rode, groene, blauwe en alfa componenten aan. Elke Vector-instantie bevat 256 waarden die het aantal elementen van een afzonderlijke componentwaarde voorstelt - een waarde tussen 0 en 255.
Parameters
hRect:Rectangle (default = null ) — Het gebied van het BitmapData-object voor het histogram.
|
Vector.<Vector.<Number>> |
hitTest | () | methode |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Voert raakdetectie op pixelniveau uit tussen een bitmapafbeelding en een punt, rechthoek of andere bitmapafbeelding. Een hit wordt gedefinieerd als overlapping van een punt of rechthoek op een dekkende pixel of twee overlappende dekkende pixels. Wanneer de aanraaktest wordt uitgevoerd, wordt geen rekening gehouden met uitrek-, rotatie- of andere transformatiebewerkingen van de objecten.
Wanneer een afbeelding dekkend is, wordt deze afbeelding voor deze methode als een volledig dekkende rechthoek beschouwd. Beide afbeeldingen moeten transparant zijn om een aanraakdetectietest op pixelniveau te kunnen uitvoeren waarbij rekening wordt gehouden met transparantie. Wanneer u twee transparante afbeeldingen test, bepalen de parameters van de alpha-drempel welke alpha-kanaalwaarden, van 0 tot en met 255, als dekkend worden beschouwd.
Parameters
firstPoint:Point — Een positie van de linkerbovenhoek van de BitmapData-afbeelding in een willekeurige coördinaatruimte. Dezelfde coördinaatruimte wordt gebruikt voor het definiëren van de parameter secondBitmapPoint .
| |
firstAlphaThreshold:uint — De kleinste alpha-kanaalwaarde die voor deze detectietest als dekkend wordt beschouwd.
| |
secondObject:Object — Een object Rectangle, Point, Bitmap of BitmapData.
| |
secondBitmapDataPoint:Point (default = null ) — Een punt dat een pixellocatie in het tweede object BitmapData definieert. Gebruik deze parameter alleen wanneer de waarde van secondObject een object BitmapData is.
| |
secondAlphaThreshold:uint (default = 1 ) — De kleinste alpha-kanaalwaarde die in het tweede BitmapData-object als dekkend wordt beschouwd. Gebruik deze parameter alleen wanneer de waarde van secondObject een object BitmapData is en beide objecten BitmapData transparant zijn.
|
Boolean — De waarde true bij een aanraking, anders false .
|
Gegenereerde uitzondering
ArgumentError — De parameter secondObject is geen object Point, Rectangle, Bitmap of BitmapData.
| |
TypeError — De waarde voor firstPoint is null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
hitTest()
aangeroepen met een object Point als secondObject
. In de eerste aanroep definieert het object Point de linkerbovenhoek van het object BitmapData, die niet dekkend is, en in de tweede aanroep definieert het object Point het centrum van het object BitmapData, dat wel dekkend is.
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock | () | methode |
public function lock():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Vergrendelt een afbeelding zodanig dat alle objecten die verwijzen naar het object BitmapData, zoals objecten Bitmap, niet worden bijgewerkt wanneer dit object BitmapData verandert. Gebruik deze methode met de methode unlock()
voor en na verscheidene aanroepen van de methode setPixel()
of setPixel32()
om de prestaties te verbeteren.
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
bitmapData
van een Bitmap-object picture
. Vervolgens wordt de methode lock()
aangeroepen voordat een gecompliceerde aangepaste functie complexTransformation()
wordt aangeroepen waarmee het object BitmapData wordt gewijzigd. (Het object picture
en de functie complexTransformation()
zijn in dit voorbeeld niet gedefinieerd.) Zelfs wanneer met de functie complexTransformation()
de eigenschap bitmapData
van het object picture
wordt bijgewerkt, worden de wijzigingen pas doorgevoerd nadat de code de methode unlock()
aanroept op het object bitmapData
:
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
merge | () | methode |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Voert overvloeiing per kanaal uit van een bronafbeelding naar een doelafbeelding. Voor elk kanaal en elke pixel wordt een nieuwe waarde berekend op basis van de kanaalwaarden van de bron- en doelpixels. In het rode kanaal wordt de nieuwe waarde bijvoorbeeld als volgt berekend (waarbij redSrc
de waarde van het rode kanaal voor een pixel in de bronafbeelding is en redDest
de waarde van het rode kanaal voor de overeenkomstige pixel in de doelafbeelding):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
De waarden voor redMultiplier
, greenMultiplier
, blueMultiplier
en alphaMultiplier
zijn de vermenigvuldigingsfactoren die voor elk kleurkanaal worden gebruikt. Gebruik een hexadecimale waarde variërend van 0
tot 0x100
(256) waarbij 0
aangeeft dat de volledige waarde van het doel in het resultaat wordt gebruikt, 0x100
aangeeft dat de volledige waarde van de bron in het resultaat wordt gebruikt en de getallen hiertussen aangeven dat een overvloeikleur wordt gebruikt (zoals 0x80
voor 50%).
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of kan naar het huidige object BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het punt binnen de doelafbeelding (de huidige instantie BitmapData) dat overeenkomt met de linkerbovenhoek van de bronrechthoek.
| |
redMultiplier:uint — Een hexadecimale uint-waarde waarmee de waarde van het rode kanaal moet worden vermenigvuldigd.
| |
greenMultiplier:uint — Een hexadecimale uint-waarde waarmee de waarde van het groene kanaal moet worden vermenigvuldigd.
| |
blueMultiplier:uint — Een hexadecimale uint-waarde waarmee de waarde van het blauwe kanaal moet worden vermenigvuldigd.
| |
alphaMultiplier:uint — Een hexadecimale uint-waarde waarmee de alpha-transparantiewaarde moet worden vermenigvuldigd.
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect of destPoint is null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
merge()
aangeroepen, waardoor de pixels uit het tweede object BitmapData in het eerste object BitmapData worden samengevoegd, maar alleen in een opgegeven rechthoekig gebied:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise | () | methode |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Vult een afbeelding met pixels die willekeurige ruis vertegenwoordigen.
Parameters
randomSeed:int — Het willekeurige zaadgetal dat moet worden gebruikt. Wanneer u alle andere parameters ongewijzigd laat, kunt u verschillende pseudo-willekeurige resultaten genereren door de willekeurige zaadgetalwaarde te wijzigen. De ruisfunctie is een toewijzingsfunctie, geen functie die een echt willekeurig getal genereert; deze genereert dus telkens dezelfde resultaten uit hetzelfde willekeurige zaadgetal.
| |
low:uint (default = 0 ) — De laagste waarde die voor elk kanaal (0 tot en met 255) moet worden gegenereerd.
| |
high:uint (default = 255 ) — De hoogste waarde die voor elk kanaal (0 tot en met 255) moet worden gegenereerd.
| |
channelOptions:uint (default = 7 ) — Een getal dat een combinatie kan zijn van elk van de vier kanaalwaarden (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN en BitmapDataChannel.ALPHA ). U kunt de logische operator OR (| ) gebruiken om kanaalwaarden te combineren.
| |
grayScale:Boolean (default = false ) — Een Booleaanse waarde. Wanneer de waarde true is, wordt een afbeelding in grijstinten gemaakt door alle kleurkanalen op dezelfde waarde in te stellen. De selectie van het alpha-kanaal wordt niet beïnvloed wanneer deze parameter op true wordt ingesteld.
|
Verwante API-elementen
flash.display.BitmapDataChannel.BLUE
flash.display.BitmapDataChannel.GREEN
flash.display.BitmapDataChannel.ALPHA
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
noise()
voor beide aangeroepen. De parameter grayscale
wordt echter op false
ingesteld voor de aanroep van de methode noise()
van het eerste object en op true
voor de aanroep van de methode noise()
van het tweede object:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90;
paletteMap | () | methode |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Wijst de kleurkanaalwaarden opnieuw toe in een afbeelding met maximaal vier arrays kleurenpaletgegevens, één voor elk kanaal.
Flash-runtimes gebruiken de volgende stappen om de resulterende afbeelding te genereren:
- Nadat de rode, groene, blauwe en alpha-waarden zijn berekend, worden ze bij elkaar gevoegd op basis van een standaardberekening voor 32-bits gehele getallen.
- De rode, groene, blauwe en alpha-kanaalwaarden van elke pixel worden geëxtraheerd tot afzonderlijke waarden 0 tot en met 255. Deze waarden worden gebruikt om nieuwe kleurwaarden in de betreffende array op te zoeken:
redArray
,greenArray
,blueArray
enalphaArray
. Elk van deze vier arrays moet 256 waarden bevatten. - Nadat alle vier de nieuwe kanaalwaarden zijn opgehaald, worden deze gecombineerd tot een standaard-ARGB-waarde die op de pixel wordt toegepast.
Interkanaaleffecten kunnen met deze methode worden ondersteund. Elke invoerarray kan volledige 32-bits waarden bevatten en wanneer de waarden bij elkaar worden gevoegd, vinden er geen verschuivingen plaats. Deze routine ondersteunt geen vastklemming per kanaal.
Wanneer geen array voor een kanaal wordt opgegeven, wordt het kleurkanaal uit de bronafbeelding naar de doelafbeelding gekopieerd.
U kunt deze methode voor diverse effecten gebruiken, zoals algemene palettoewijzing (waarbij een kanaal wordt geselecteerd en omgezet in een afbeelding met valse kleuren). U kunt deze methode ook gebruiken voor diverse geavanceerde kleurmanipulatieberekeningen, zoals gamma, curven, niveaus en kwantisering.
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of naar de huidige instantie BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het punt binnen de doelafbeelding (het huidige object BitmapData) dat overeenkomt met de linkerbovenhoek van de bronrechthoek.
| |
redArray:Array (default = null ) — Wanneer redArray niet null is, geldt: rood = redArray[roodwaarde bron] anders red = roodwaarde bron .
| |
greenArray:Array (default = null ) — Wanneer greenArray niet null is, geldt: groen = greenArray[groenwaarde bron] anders groen = groenwaarde bron .
| |
blueArray:Array (default = null ) — Wanneer blueArray niet null is, geldt blauw = blueArray[blauwwaarde bron] anders blauw = blauwwaarde bron .
| |
alphaArray:Array (default = null ) — Wanneer alphaArray niet null is, alpha = alphaArray[alpha-waarde bron] anders alpha = alpha-waarde bron .
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect of destPoint is null.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
paletteMap()
gebruikt om het rood in de onderste rechthoekige helft van het object BitmapData te vervangen door groen:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise | () | methode |
public function perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Genereert een Perlin-ruisafbeelding.
Het generatiealgoritme van Perlin-ruis interpoleert en combineert afzonderlijke willekeurige ruisfuncties (octaven genoemd) tot een enkele functie die een meer natuurlijk aandoende willekeurige ruis genereert. Net als bij octaven in muziek, is elke octaaffunctie twee keer de frequentie van de voorafgaande functie. Perlin-ruis wordt omschreven als een ‘fractale som van ruis’, omdat het meerdere sets ruisgegevens met verschillende detailniveaus combineert.
U kunt Perlin-ruisfuncties gebruiken om natuurverschijnselen en landschappen te simuleren, zoals houtstructuur, wolken en bergketens. In de meeste gevallen wordt de uitvoer van een Perlin-ruisfunctie niet direct weergegeven maar wordt deze gebruikt om andere beelden te versterken en er pseudo-willekeurige variaties aan te geven.
Eenvoudige digitale willekeurige ruisfuncties leveren vaak beelden op met harde, contrasterende punten. Dit type hard contrast komt in de natuur niet vaak voor. Het Perlin-ruisalgoritme laat meerdere ruisfuncties in elkaar overvloeien die op verschillende detailniveaus werken. Dit algoritme resulteert in kleinere variaties tussen naastgelegen pixelwaarden.
Parameters
baseX:Number — De te gebruiken hoeveelheid in de x-richting. Wanneer u bijvoorbeeld een ruiseffect voor een afbeelding van 64 x 128 wilt maken, geeft u 64 als waarde voor baseX door.
| |
baseY:Number — De te gebruiken hoeveelheid in de y-richting. Wanneer u bijvoorbeeld een ruiseffect voor een afbeelding van 64 x 128 wilt maken, geeft u 128 als waarde voor baseY door.
| |
numOctaves:uint — aantal octaven of afzonderlijke ruisfuncties dat moet worden gecombineerd om deze ruis te maken. Grote aantallen octaven maken afbeeldingen met meer detail. Grote aantallen octaven nemen ook meer verwerkingstijd in beslag.
| |
randomSeed:int — Het willekeurige zaadgetal dat moet worden gebruikt. Wanneer u alle andere parameters ongewijzigd laat, kunt u verschillende pseudo-willekeurige resultaten genereren door de willekeurige zaadgetalwaarde te wijzigen. De Perlin-ruisfunctie is een toewijzingsfunctie, geen functie die een echt willekeurig getal genereert; deze genereert dus telkens dezelfde resultaten uit hetzelfde willekeurige zaadgetal.
| |
stitch:Boolean — Een Booleaanse waarde. Wanneer de waarde true is, probeert de methode de overgangsranden van de afbeelding vloeiend te maken om een naadloze structuur te maken voor tegels als bitmapvulling.
| |
fractalNoise:Boolean — Een Booleaanse waarde. Bij true genereert de methode fractale ruis, anders turbulentie. Bij een afbeelding met turbulentie worden in verlopende kleuren onderbrekingen zichtbaar waardoor scherpere visuele effecten, zoals vlammen en golven, beter kunnen worden gesimuleerd.
| |
channelOptions:uint (default = 7 ) — Een getal dat een combinatie kan zijn van elk van de vier kanaalwaarden (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN en BitmapDataChannel.ALPHA ). U kunt de logische operator OR (| ) gebruiken om kanaalwaarden te combineren.
| |
grayScale:Boolean (default = false ) — Een Booleaanse waarde. Wanneer de waarde true is, wordt een afbeelding in grijstinten gemaakt door alle rode, groene en blauwe kleurkanalen op identieke waarden in te stellen. De alpha-kanaalwaarde wordt niet beïnvloed wanneer deze waarde op true wordt ingesteld.
| |
offsets:Array (default = null ) — Een array van punten die overeenkomen met x- en y-verschuivingen voor elke octaaf. Door de verschuivingswaarden te manipuleren, kunt u de lagen van een perlinNoise-afbeelding vloeiend verschuiven. Elk punt in de verschuivingsarray heeft invloed op een specifieke octaafruisfunctie.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
perlinNoise()
aanroept om een rood en blauw waterverfeffect te genereren:
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve | () | methode |
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Voert een pixelovervloeiing uit van een bronafbeelding naar een doelafbeelding of op dezelfde afbeelding. Flash-runtimes gebruiken een waarde voor randomSeed
om een willekeurige pixelovervloeiing te genereren. De geretourneerde waarde van de functie moet bij volgende aanroepen worden doorgegeven om de pixelovervloeiing voort te zetten totdat deze is voltooid.
Wanneer de bronafbeelding niet overeenkomt met de doelafbeelding, worden alle eigenschappen gebruikt bij het kopiëren van de pixels van de bron- naar de doelafbeelding. Met dit proces is overvloeiing van een lege afbeelding naar een volledig gevulde afbeelding mogelijk.
Wanneer de bron- en doelafbeelding overeenkomen, worden pixels met de parameter color
gevuld. Met dit proces is overvloeiing op basis van een volledig gevulde afbeelding mogelijk. In deze modus wordt de doelparameter point
genegeerd.
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of naar de huidige instantie BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het punt binnen de doelafbeelding (de huidige instantie BitmapData) dat overeenkomt met de linkerbovenhoek van de bronrechthoek.
| |
randomSeed:int (default = 0 ) — Het willekeurige zaadgetal dat moet worden gebruikt om de pixelovervloeiing te starten.
| |
numPixels:int (default = 0 ) — De standaardwaarde is 1/30 van het brongebied (breedte x hoogte).
| |
fillColor:uint (default = 0 ) — Een ARGB-kleurwaarde die u gebruikt om pixels te vullen waarvan de bronwaarde gelijk is aan de doelwaarde.
|
int — De nieuwe willekeurige zaadgetalwaarde die voor volgende aanroepen moet worden gebruikt.
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect of destPoint is null.
| |
TypeError — De waarde voor numPixels is negatief.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
pixelDissolve()
gebruikt om een grijs object BitmapData om te zetten in een rood object BitmapData door telkens 40 pixels te overvloeien totdat alle pixels van kleur zijn veranderd:
import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll | () | methode |
public function scroll(x:int, y:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Schuift een afbeelding met een bepaald aantal pixels (x, y). Randgebieden buiten het schuifgebied blijven ongewijzigd.
Parameters
x:int — De hoeveelheid waarmee horizontaal wordt geschoven.
| |
y:int — De hoeveelheid waarmee verticaal wordt geschoven.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000
setPixel | () | methode |
public function setPixel(x:int, y:int, color:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Stelt een enkele pixel van een object BitmapData in. De huidige alpha-kanaalwaarde van de afbeeldingspixel blijft tijdens deze bewerking behouden. De waarde van de RGB-kleurparameter wordt behandeld als een niet-vermenigvuldigde kleurwaarde.
Opmerking: wanneer u de prestaties wilt verbeteren en u de methode setPixel()
of setPixel32()
herhaaldelijk gebruikt, roept u de methode lock()
aan voordat u de methode setPixel()
of setPixel32()
aanroept en roept u de methode unlock()
aan wanneer u alle pixelwijzigingen hebt doorgevoerd. Op deze manier voorkomt u dat objecten die naar de instantie BitmapData verwijzen, al worden bijgewerkt voordat u de pixelwijzigingen hebt doorgevoerd.
Parameters
x:int — De x-positie van de pixel waarvan de waarde verandert.
| |
y:int — De y-positie van de pixel waarvan de waarde verandert.
| |
color:uint — De resulterende RGB-kleur voor de pixel.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
setPixel()
gebruikt om een rode lijn in een object BitmapData te tekenen:
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel32 | () | methode |
public function setPixel32(x:int, y:int, color:uint):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Stelt de kleur- en alpha-transparantiewaarden van een enkele pixel van een object BitmapData in. Deze methode is vergelijkbaar met de methode setPixel()
. Het belangrijkste verschil is dat bij de methode setPixel32()
een ARGB-kleurwaarde wordt gebruikt die alpha-kanaalgegevens bevat.
Alle pixels in een object BitmapData worden als vooraf vermenigvuldigde kleurwaarden opgeslagen. Bij een vooraf vermenigvuldigde afbeeldingspixel zijn de rode, groene en blauwe kleurkanaalwaarden al door de alpha-gegevens vermenigvuldigd. Wanneer de alpha-waarde bijvoorbeeld 0 is, zijn de waarden voor de RGB-kanalen ook 0, onafhankelijk van de niet-vermenigvuldigde waarden. Dit verlies van gegevens kan problemen veroorzaken wanneer u bewerkingen uitvoert. Alle BitmapData-methoden gebruiken en retourneren niet-vermenigvuldigde waarden. De interne pixelrepresentatie wordt omgezet van vooraf vermenigvuldigd in niet vermenigvuldigd voordat deze als een waarde wordt geretourneerd. Tijdens het instellen wordt de pixelwaarde vooraf vermenigvuldigd voordat de onbewerkte afbeeldingspixel wordt ingesteld.
Opmerking: wanneer u de prestaties wilt verbeteren en u de methode setPixel()
of setPixel32()
herhaaldelijk gebruikt, roept u de methode lock()
aan voordat u de methode setPixel()
of setPixel32()
aanroept en roept u de methode unlock()
aan wanneer u alle pixelwijzigingen hebt doorgevoerd. Op deze manier voorkomt u dat objecten die naar de instantie BitmapData verwijzen, al worden bijgewerkt voordat u de pixelwijzigingen hebt doorgevoerd.
Parameters
x:int — De x-positie van de pixel waarvan de waarde verandert.
| |
y:int — De y-positie van de pixel waarvan de waarde verandert.
| |
color:uint — De resulterende ARGB-kleur voor de pixel. Wanneer de bitmap dekkend is (niet transparant), wordt het gedeelte voor alpha-transparantie van deze kleurwaarde genegeerd.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
setPixel32()
gebruikt om een transparante (alpha == 0x60) rode lijn in een object BitmapData te tekenen:
import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixels | () | methode |
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Zet een bytearray om in een rechthoekig gebied met pixelgegevens. Voor elke pixel wordt de methode ByteArray.readUnsignedInt()
aangeroepen en wordt de geretourneerde waarde in de pixel geschreven. Wanneer de bytearray eindigt voordat de volledige rechthoek is geschreven, genereert de functie een uitzondering. Van de gegevens in de bytearray wordt verwacht dat het 32-bits ARGB-pixelwaarden zijn. Voor- of nadat de pixels zijn gelezen, worden geen zoekbewerkingen op de bytearray uitgevoerd.
Parameters
rect:Rectangle — Geeft het rechthoekige gebied van het object BitmapData op.
| |
inputByteArray:ByteArray — Een object ByteArray dat uit niet-vermenigvuldigde 32-bits pixelwaarden bestaat en in het rechthoekige gebied moet worden gebruikt.
|
Gegenereerde uitzondering
EOFError — Het object inputByteArray bevat niet genoeg gegevens om het gebied van de rechthoek rect te vullen. Met deze methode worden zoveel mogelijk pixels gevuld voordat de uitzondering wordt gegenereerd.
| |
TypeError — De waarde voor rect of inputByteArray is null.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
getPixels()
en setPixels()
gebruikt om pixels van het ene naar het andere object BitmapData te kopiëren:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
setVector | () | methode |
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Zet een Vector om in een rechthoekig gebied met pixelgegevens. Voor elke pixel wordt een Vectorelement in de BitmapData-pixel gelezen en geschreven. Van de gegevens in de Vector wordt verwacht dat het 32-bits ARGB-pixelwaarden zijn.
Parameters
rect:Rectangle — Geeft het rechthoekige gebied van het object BitmapData op.
| |
inputVector:Vector.<uint> — Een Vectorobject dat uit niet-vermenigvuldigde 32-bits pixelwaarden bestaat en in het rechthoekige gebied moet worden gebruikt.
|
Gegenereerde uitzondering
RangeError — De vectorarray is niet groot genoeg om alle pixelgegevens te lezen.
|
threshold | () | methode |
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Test pixelwaarden in een afbeelding op basis van een opgegeven drempel en stelt nieuwe kleurwaarden in voor pixels die aan de test voldoen. Met de methode threshold()
kunt u kleurbereiken in een afbeelding isoleren en vervangen en andere logische bewerkingen op afbeeldingspixels uitvoeren.
De methode threshold()
gebruikt de volgende testlogica:
- Bij
((pixelValue & mask) operation (threshold & mask))
stelt u de pixel in opcolor
; - Bij
copySource == true
stelt u de pixel in op de overeenkomende pixelwaarde vansourceBitmap
.
Met de parameter operation
wordt de vergelijkingsparameter opgegeven die voor de drempeltest moet worden gebruikt. Wanneer u '==' als de parameter operation
gebruikt, kunt u een bepaalde kleurwaarde in een afbeelding isoleren. En wanneer u {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}
gebruikt, kunt u alle doelpixels zo instellen dat ze volledig transparant zijn wanneer de alpha van de pixels van de bronafbeelding kleiner is dan 0x7F. U kunt deze techniek voor bewegende overgangen en andere effecten gebruiken.
Parameters
sourceBitmapData:BitmapData — De invoerbitmapafbeelding die moet worden gebruikt. De bronafbeelding kan een ander object BitmapData zijn of kan naar de huidige instantie BitmapData verwijzen.
| |
sourceRect:Rectangle — Een rechthoek die het gebied van de bronafbeelding definieert dat als invoer moet worden gebruikt.
| |
destPoint:Point — Het punt binnen de doelafbeelding (de huidige instantie BitmapData) dat overeenkomt met de linkerbovenhoek van de bronrechthoek.
| |
operation:String — Een van de volgende vergelijkingsoperatoren, als een tekenreeks doorgegeven: "<", "<=", ">", ">=", "==", "!=".
| |
threshold:uint — De waarde op basis waarvan elke pixel wordt getest om te controleren of deze aan de drempelwaarde voldoet of deze overschrijdt.
| |
color:uint (default = 0 ) — De kleurwaarde die voor een pixel wordt ingesteld wanneer deze voldoet aan de drempeltest. De standaardwaarde is 0x00000000.
| |
mask:uint (default = 0xFFFFFFFF ) — Het masker dat moet worden gebruikt om een kleurcomponent te isoleren.
| |
copySource:Boolean (default = false ) — Wanneer de waarde true is, worden pixelwaarden van de bronafbeelding naar het doel gekopieerd wanneer de drempeltest mislukt. Wanneer de waarde false is, wordt de bronafbeelding niet gekopieerd wanneer de drempeltest mislukt.
|
uint — Het aantal pixels dat is gewijzigd.
|
Gegenereerde uitzondering
TypeError — De waarde voor sourceBitmapData, sourceRect destPoint of operation is null.
| |
ArgumentError — De bewerkingstekenreeks is geen geldige bewerking.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
perlinNoise()
gebruikt om een blauw en rood patroon aan één object BitmapData toe te voegen. Vervolgens wordt de methode threshold()
gebruikt om die pixels van het eerste object BitmapData naar een tweede object BitmapData te kopiëren, zodat de pixels waarin de roodwaarde groter is dan 0x80 (50%) worden vervangen door een pixel die op transparant rood (0x20FF0000) is ingesteld:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock | () | methode |
public function unlock(changeRect:Rectangle = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR 1.0 |
Ontgrendelt een afbeelding zodanig dat alle objecten die verwijzen naar het object BitmapData, zoals objecten Bitmap, worden bijgewerkt wanneer dit object BitmapData verandert. Gebruik deze methode met de methode lock()
voor en na verscheidene aanroepen van de methode setPixel()
of setPixel32()
om de prestaties te verbeteren.
Parameters
changeRect:Rectangle (default = null ) — Het gebied van het object BitmapData dat is gewijzigd. Wanneer u geen waarde voor deze parameter opgeeft, wordt het gehele gebied van het object BitmapData beschouwd als gewijzigd. Deze parameter maakt gebruik van Flash Player versie 9.0.115.0 of later.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
bitmapData
van een Bitmap-object picture
. Vervolgens wordt de methode lock()
aangeroepen voordat een gecompliceerde aangepaste functie complexTransformation()
wordt aangeroepen waarmee het object BitmapData wordt gewijzigd. (Het object picture
en de functie complexTransformation()
zijn in dit voorbeeld niet gedefinieerd.) Zelfs wanneer met de functie complexTransformation()
de eigenschap bitmapData
van het object picture
wordt bijgewerkt, worden de wijzigingen pas doorgevoerd nadat de code de methode unlock()
aanroept op het object bitmapData
:
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold()
doorstaan. De taak wordt uitgevoerd door de volgende stappen uit te voeren:
- De eigenschap
url
, de locatie en naam van het afbeeldingsbestand, wordt gemaakt. - Met de klasseconstructor wordt een object Loader gemaakt dat een gebeurtenislistener instantieert die wordt verzonden wanneer de methode
completeHandler()
de beeldbewerking voltooit. - Het URLRequest-object
request
wordt vervolgens doorgegeven aanloader.load()
waarmee de afbeelding met een weergaveobject in het geheugen wordt geladen. - De afbeelding wordt opgenomen in het weergaveoverzicht waar de afbeelding op de coördinaten x = 0, y = 0 op het scherm wordt weergegeven.
- Met de methode
completeHandler()
worden vervolgens de volgende handelingen uitgevoerd:- Naast een object Bitmap wordt een tweede object Loader gemaakt dat met het object Loader wordt geïnitialiseerd.
- Er wordt een tweede object Bitmap,
duplicate
, gemaakt waarmee de methodeduplicateImage()
wordt aangeroepen om een kopie van de oorspronkelijke afbeelding te maken. - Er wordt een object BitmapData gemaakt dat aan het object BitmapData van het object
duplicate
wordt toegewezen. - Er wordt een nieuw object Rectangle met dezelfde coördinaten, breedte en hoogte als de oorspronkelijke afbeelding gemaakt.
- Er wordt een nieuw object Point met de standaardcoördinaten x = 0, y = 0 gemaakt.
- De volgende variabelen worden gemaakt:
operation
— Hiermee wordt de nieuwe kleur toegepast wanneer de drempelwaarde groter dan of gelijk is aan de oorspronkelijke waarde.threshold
— De waarde op basis waarvan elke pixel wordt vergeleken (in dit voorbeeld lichtgrijs met een alpha van 0xCC).color
— De kleur waarop de pixels zijn ingesteld die de drempeltest doorstaan, in dit geval effen geel.mask
— De tegenovergestelde kleur (transparant blauw).copySource
— Opfalse
ingesteld om aan te geven dat de pixelwaarden niet worden gekopieerd wanneer de drempelwaarde niet wordt gehaald. Deze waarde heeft geen betekenis omdat de afbeelding wordt gedupliceerd en alleen pixels die de drempelwaarde halen, worden gewijzigd.
- De methode
threshold()
wordt met de voorgaande variabelen aangeroepen. Voor de resulterende drempelwaarde wordt de volgende vergelijking gebruikt:wanneer (huidige pixelwaarde & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF), worden pixels op 0xFFFFFF00
ingesteld.
Opmerkingen:
- U moet het SWF-bestand compileren met Lokale afspeelbeveiliging ingesteld op Alleen lokale bestanden benaderen.
- U kunt dit voorbeeld alleen uitvoeren wanneer het bestand Image.gif zich in dezelfde map bevindt als uw SWF-bestand.
- U kunt het beste een afbeelding van ongeveer 80 pixels breed gebruiken.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
Wed Jun 13 2018, 11:42 AM Z