| Pacchetto | flash.display |
| Classe | public class BitmapData |
| Ereditarietà | BitmapData Object |
| Implementa | IBitmapDrawable |
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
flash.display.Loader.
Questa classe consente di separare le operazioni di rendering bitmap dalle routine interne di aggiornamento della visualizzazione di Flash Player. Manipolando direttamente un oggetto BitmapData è possibile creare immagini complesse senza la necessità di ridisegnare costantemente il contenuto per ogni fotogramma partendo dai dati vettoriali.
I metodi della classe BitmapData supportano vari effetti che non sono disponibili tramite i filtri applicabili agli oggetti di visualizzazione non bitmap.
Un oggetto BitmapData contiene un array di dati pixel. Questi dati possono rappresentare un'immagine bitmap completamente opaca o un'immagine bitmap trasparente contenente dati per il canale alfa. Entrambi i tipi di oggetto BitmapData sono memorizzati sotto forma di buffer di numeri interi a 32 bit. Ogni numero intero a 32 bit determina le proprietà di un singolo pixel nell'immagine bitmap.
Ogni numero intero a 32 bit è una combinazione di quattro valori "canale" a 8 bit (da 0 a 255) che descrivono i valori per la trasparenza alfa e per il rosso, il verde e il blu (ARGB) del pixel. (Per i valori ARGB, il byte più significativo rappresenta il valore del canale alfa, seguito da rosso, verde e blu.)
I quattro canali (alfa, rosso, verde e blu) vengono rappresentati come numeri se utilizzati con il metodo BitmapData.copyChannel() o le proprietà DisplacementMapFilter.componentX e DisplacementMapFilter.componentY, e tali numeri sono rappresentati dalle seguenti costanti nella classe BitmapDataChannel:
BitmapDataChannel.ALPHABitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEGli oggetti BitmapData possono essere associati a un oggetto Bitmap mediante la proprietà bitmapData dell'oggetto Bitmap.
È possibile utilizzare un oggetto BitmapData per riempire un oggetto Graphics mediante il metodo Graphics.beginBitmapFill().
La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel.
Le chiamate a qualunque metodo o proprietà di un oggetto BitmapData generano un errore ArgumentError se l'oggetto BitmapData non è valido (ad esempio, se contiene height == 0 e width == 0) oppure se è stato eliminato con il metodo dispose().
Vedere anche
| Proprietà | Definito da | ||
|---|---|---|---|
![]() | constructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
| Object | |
| height: int
[sola lettura]
L'altezza dell'immagine bitmap, espressa in pixel.
| BitmapData | ||
![]() | prototype: Object
[statico]
Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
| Object | |
| rect: Rectangle
[sola lettura]
Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap.
| BitmapData | ||
| transparent: Boolean
[sola lettura]
Indica se l'immagine bitmap supporta la trasparenza per pixel.
| BitmapData | ||
| width: int
[sola lettura]
La larghezza dell'immagine bitmap, espressa in pixel.
| BitmapData | ||
| Metodo | Definito da | ||
|---|---|---|---|
|
Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza.
| BitmapData | ||
|
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Usa un'immagine di origine e un oggetto filtro per generare l'immagine filtrata.
| BitmapData | ||
|
Restituisce un nuovo oggetto BitmapData che è un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta.
| BitmapData | ||
|
Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform.
| BitmapData | ||
|
Confronta due oggetti BitmapData.
| BitmapData | ||
|
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente.
| BitmapData | ||
|
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore.
| BitmapData | ||
|
Libera la memoria utilizzata per memorizzare l'oggetto BitmapData.
| BitmapData | ||
|
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Disegna l'oggetto di visualizzazione di origine sull'immagine bitmap utilizzando il renderer di vettori di Flash Player.
| BitmapData | ||
|
Riempie un'area rettangolare di pixel con un determinato colore ARGB.
| BitmapData | ||
|
Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e applicando un riempimento di un determinato colore.
| BitmapData | ||
|
Determina il rettangolo di destinazione su cui agisce la chiamata al metodo applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filtro.
| BitmapData | ||
|
Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap (se il parametro findColor è impostato su true) oppure che racchiude completamente tutti i pixel che non includono il colore specificato (se findColor è false).
| BitmapData | ||
|
Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y).
| BitmapData | ||
|
Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB.
| BitmapData | ||
|
Genera un array di byte da un'area rettangolare di dati pixel.
| BitmapData | ||
![]() |
Indica se per un oggetto è definita una proprietà specifica.
| Object | |
|
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap.
| BitmapData | ||
![]() |
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
| Object | |
|
Blocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, non vengano aggiornati quando questo oggetto BitmapData viene modificato.
| BitmapData | ||
|
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione.
| BitmapData | ||
|
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Riempie un'immagine con pixel che rappresentano disturbi a caso.
| BitmapData | ||
|
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale.
| BitmapData | ||
|
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Genera un'immagine di disturbo Perlin.
| BitmapData | ||
|
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine.
| BitmapData | ||
![]() |
Indica se la proprietà specificata esiste ed è enumerabile.
| Object | |
|
Scorre un'immagine di una certa quantità di pixel (x, y).
| BitmapData | ||
|
Imposta un singolo pixel di un oggetto BitmapData.
| BitmapData | ||
|
Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData.
| BitmapData | ||
|
Converte un array di byte in un'area rettangolare di dati pixel.
| BitmapData | ||
![]() |
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
| Object | |
|
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Prova i valori in pixel di un'immagine in base a una soglia specificata e imposta i pixel che superano la prova a nuovi valori di colore.
| BitmapData | ||
![]() |
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
| Object | |
|
Sblocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, vengano aggiornati quando questo oggetto BitmapData viene modificato.
| BitmapData | ||
![]() |
Restituisce il valore di base dell'oggetto specificato.
| Object | |
| height | proprietà |
height:int [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
L'altezza dell'immagine bitmap, espressa in pixel.
public function get height():int
| rect | proprietà |
rect:Rectangle [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. La parte superiore e sinistra del rettangolo hanno valore zero; la larghezza e l'altezza sono uguali alla larghezza e all'altezza espresse in pixel dell'oggetto BitmapData.
public function get rect():Rectangle
| transparent | proprietà |
transparent:Boolean [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Indica se l'immagine bitmap supporta la trasparenza per pixel. È possibile impostare questo valore solo quando si crea un oggetto BitmapData passando true per il parametro transparent della funzione di costruzione. Quindi, dopo aver creato un oggetto BitmapData, è possibile controllare se supporta la trasparenza per pixel verificando se il valore della proprietà transparent è true.
public function get transparent():Boolean
| width | proprietà |
width:int [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
La larghezza dell'immagine bitmap, espressa in pixel.
public function get width():int
| BitmapData | () | Funzione di costruzione |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza. Se viene specificato un valore del parametro fillColor, ogni pixel nella bitmap viene impostato su tale colore.
Per impostazione predefinita, l'immagine bitmap creata è trasparente, a meno che non venga passato il valore false per il parametro transparent. Una volta creata un'immagine bitmap opaca, non è possibile convertirla in una bitmap trasparente. Ogni pixel in un'immagine bitmap opaca utilizza solo 24 bit di informazioni dei canali di colore. Se si definisce l'immagine bitmap come trasparente, ogni pixel utilizza 32 bit di informazioni dei canali di colore, compreso il canale di trasparenza alfa.
La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel. Se per la larghezza e l'altezza si specifica un valore maggiore di 2880, non viene creata una nuova istanza.
Parametriwidth:int — La larghezza dell'immagine bitmap, espressa in pixel.
|
|
height:int — L'altezza dell'immagine bitmap, espressa in pixel.
|
|
transparent:Boolean (default = true) — Indica se l'immagine bitmap supporta la trasparenza per pixel. Il valore predefinito è true (trasparente). Per creare un'immagine bitmap completamente trasparente, impostare il valore del parametro transparent su true e il valore del parametro fillColor su 0x00000000 (o su 0). L'impostazione della proprietà transparent su false può migliorare lievemente le prestazioni di rendering.
|
|
fillColor:uint (default = 0xFFFFFFFF) — Un valore di colore ARGB a 32 bit utilizzato per riempire l'area dell'immagine bitmap. Il valore predefinito è 0xFFFFFFFF (bianco uniforme).
|
ArgumentError — width e/o height non sono validi (minori o uguali a zero, oppure maggiori di 2880)
|
| applyFilter | () | metodo |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Usa un'immagine di origine e un oggetto filtro per generare l'immagine filtrata.
Questo metodo si basa sul comportamento degli oggetti filtro incorporati, che determinano il rettangolo di destinazione su cui agisce un rettangolo di origine di input.
Dopo l'applicazione di un filtro, l'immagine risultante può apparire più grande di quella di input. Ad esempio, se si utilizza una classe BlurFilter per sfocare un rettangolo di origine con dimensioni (50,50,100,100) e un punto di destinazione con dimensioni (10,10), l'area che viene modificata nell'immagine di destinazione risulta più grande di (10,10,60,60) a causa della sfocatura. Questo comportamento si verifica internamente durante la chiamata a applyFilter().
Se il parametro sourceRect del parametro sourceBitmapData è una regione interna, ad esempio (50,50,100,100) in un'immagine 200 x 200, il filtro utilizza i pixel di origine fuori del parametro sourceRect per generare il rettangolo di destinazione.
Se l'oggetto BitmapData e l'oggetto specificato come parametro sourceBitmapData coincidono, Flash Player utilizza una copia temporanea dell'oggetto per eseguire il filtro. Per ottenere risultati ottimali, è necessario evitare questa situazione.
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
|
|
filter:BitmapFilter — L'oggetto filtro utilizzato per eseguire l'operazione di filtraggio. Ogni tipo di filtro è dotato di determinati requisiti, come illustrato di seguito:
|
TypeError — sourceBitmapData, sourceRect, destPoint o filter sono null.
|
|
IllegalOperationError — La trasparenza degli oggetti BitmapData non è compatibile con l'operazione di filtro.
|
Vedere anche
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 | () | metodo |
public function clone():BitmapData
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Restituisce un nuovo oggetto BitmapData che è un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta.
RestituisceBitmapData — Un nuovo oggetto BitmapData identico all'originale.
|
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 | () | metodo |
public function colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform. Se il rettangolo corrisponde ai bordi dell'immagine bitmap, questo metodo trasforma i valori del colore dell'intera immagine.
Parametri
rect:Rectangle — Un oggetto Rectangle che definisce l'area dell'immagine in cui viene applicato l'oggetto ColorTransform.
|
|
colorTransform:ColorTransform — Un oggetto ColorTransform che descrive la trasformazione del colore da applicare.
|
TypeError — rect o colorTransform sono null.
|
Vedere anche
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 | () | metodo |
public function compare(otherBitmapData:BitmapData):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Confronta due oggetti BitmapData. Se i due oggetti BitmapData hanno le stesse dimensioni (larghezza e altezza), il metodo restituisce un nuovo oggetto BitmapData nel quale ogni pixel è la "differenza" tra i pixel dei due oggetti di origine:
otherBitmapData). In questo caso le differenze del canale alfa vengono ignorate. otherBitmapData).Ad esempio, esaminare i due seguenti oggetti 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
Nota: i colori utilizzati per riempire i due oggetti BitmapData hanno valori RGB leggermente diversi (0xFF8800 e 0xCC6600). Il risultato del metodo compare() è un nuovo oggetto BitmapData in cui ogni pixel mostra la differenza nei valori RGB tra le due bitmap.
Osservare i due oggetti BitmapData seguenti, in cui i colori RGB sono uguali ma i valori alfa sono diversi:
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
Il risultato del metodo compare() è un nuovo oggetto BitmapData in cui ogni pixel mostra la differenza nei valori alfa tra le due bitmap.
Se gli oggetti BitmapData sono equivalenti (con la stessa larghezza e altezza e valori di pixel identici), il metodo restituisce il numero 0.
Se le larghezze degli oggetti BitmapData non sono uguali, il metodo restituisce -3.
Se invece le altezze non sono uguali ma le larghezze coincidono, il metodo restituisce -4.
L'esempio seguente confronta due oggetti Bitmap con larghezze diverse (50 e 60):
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Parametri
otherBitmapData:BitmapData — L'oggetto Rectangle da confrontare con l'oggetto BitmapData di origine.
|
Object — Se i due oggetti BitmapData hanno le stesse dimensioni (larghezza e altezza), il metodo restituisce un nuovo oggetto BitmapData che include la differenza tra i due oggetti (fare riferimento alla discussione principale). Se gli oggetti BitmapData sono equivalenti, il metodo restituisce 0. Se le larghezze degli oggetti BitmapData non sono uguali, il metodo restituisce -3. Se le altezze non sono uguali, il metodo restituisce -4.
|
TypeError — otherBitmapData è null.
|
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 | () | metodo |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente. Tutti i dati degli altri canali dell'oggetto BitmapData di destinazione vengono mantenuti.
Il valore del canale di origine e il valore del canale di destinazione possono essere i seguenti:
BitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEBitmapDataChannel.ALPHAParametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente.
|
|
sourceRect:Rectangle — L'oggetto Rectangle di origine. Per copiare solo i dati del canale da un'area più piccola all'interno dell'immagine bitmap, specificare un rettangolo di origine più piccolo delle dimensioni complessive dell'oggetto BitmapData.
|
|
destPoint:Point — L'oggetto Point di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi dati del canale. Per copiare solo i dati del canale da un'area a un'altra all'interno dell'immagine di destinazione, specificare un punto diverso da (0,0).
|
|
sourceChannel:uint — Il canale di origine. Utilizzare un valore della classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).
|
|
destChannel:uint — Il canale di destinazione. Utilizzare un valore della classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).
|
TypeError — sourceBitmapData, sourceRect o destPoint sono null.
|
Vedere anche
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 | () | metodo |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore. Il metodo copia un'area rettangolare di un'immagine di origine in un'area rettangolare delle stesse dimensioni in corrispondenza del punto di destinazione dell'oggetto BitmapData di destinazione.
Se vengono inclusi i parametri alphaBitmap e alphaPoint, è possibile utilizzare un'immagine secondaria come origine alfa per l'immagine di origine. Se l'immagine di origine contiene dei dati relativi all'alfa, entrambi i gruppi di dati dell'alfa vengono utilizzati per comporre i pixel dall'immagine di origine all'immagine di destinazione. Il parametro alphaPoint è il punto all'interno dell'immagine alfa che corrisponde all'angolo superiore sinistro del rettangolo di origine. Gli eventuali pixel fuori dell'immagine di origine e dell'immagine alfa non vengono copiati nell'immagine di destinazione.
La proprietà mergeAlpha controlla se il canale alfa viene utilizzato quando un'immagine trasparente viene copiata in un'altra immagine trasparente. Per copiare i pixel con i dati relativi al canale alfa, impostare la proprietà mergeAlpha su true. Per impostazione predefinita, la proprietà mergeAlpha è false.
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da cui copiare i pixel. L'immagine di origine può essere un'istanza BitmapData diversa oppure può fare riferimento all'istanza BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi pixel.
|
|
alphaBitmapData:BitmapData (default = null) — Un'origine secondaria dell'oggetto BitmapData alfa.
|
|
alphaPoint:Point (default = null) — Il punto all'interno dell'oggetto BitmapData alfa che corrisponde all'angolo superiore sinistro del parametro sourceRect.
|
|
mergeAlpha:Boolean (default = false) — Per utilizzare il canale alfa, impostare il valore su true. Per copiare i pixel (senza utilizzare il canale alfa), impostare la proprietà su false.
|
TypeError — sourceBitmapData, sourceRect, destPoint sono null.
|
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;
| dispose | () | metodo |
public function dispose():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Libera la memoria utilizzata per memorizzare l'oggetto BitmapData.
Quando si chiama il metodo dispose() su un'immagine, la larghezza e l'altezza dell'immagine vengono impostate su 0. Tutte le chiamate successive a metodi o proprietà di questa istanza BitmapData falliscono e viene generata un'eccezione.
dispose() (viene generata un'eccezione):
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 | () | metodo |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Disegna l'oggetto di visualizzazione source sull'immagine bitmap utilizzando il renderer di vettori di Flash Player. È possibile specificare matrix, colorTransform, blendMode e un parametro clipRect di destinazione per controllare l'esecuzione del rendering. Facoltativamente, è possibile specificare se la bitmap deve essere smussata quando viene modificata in scala (questa soluzione funziona solo con un oggetto di origine BitmapData).
Questo metodo corrisponde al modo in cui gli oggetti vengono disegnati mediante il renderer di vettori standard per gli oggetti nell'interfaccia dello strumento di creazione.
L'oggetto di visualizzazione di origine non utilizza per questa chiamata nessuna delle relative trasformazioni applicate. Viene considerato come se facesse parte della libreria o del file, senza trasformazioni di matrice, trasformazioni di colore e metodo di fusione. Per disegnare un oggetto di visualizzazione (ad esempio un clip filmato) utilizzandone le proprietà di trasformazione, è possibile copiarne la proprietà transform nella proprietà transform dell'oggetto Bitmap che utilizza l'oggetto BitmapData.
Nota: l'oggetto source e (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari devono provenire dallo stesso dominio del chiamante oppure essere inclusi in un file SWF accessibile al chiamante mediante una chiamata al metodo Security.allowDomain(). Se queste condizioni non sono soddisfatte, il metodo draw() non disegna nulla.
questo metodo è supportato attraverso RTMP in Flash Player Aggiornamento 3 e versioni successive. È possibile controllare l'accesso agli streaming su Flash Media Server in uno script lato server. Per ulteriori informazioni, vedere le proprietà Client.audioSampleAccess e Client.videoSampleAccess in Guida di riferimento di ActionScript lato server per Adobe Flash Media Server.
Parametri
source:IBitmapDrawable — L'oggetto di visualizzazione o l'oggetto BitmapData da disegnare nell'oggetto BitmapData. (Le classi DisplayObject e BitmapData implementano l'interfaccia IBitmapDrawable.)
|
|
matrix:Matrix (default = null) — Un oggetto Matrix utilizzato per modificare in scala, ruotare o convertire le coordinate della bitmap. Se non si vuole applicare una matrice di trasformazione all'immagine, impostare questo parametro su una matrice di identità creata con la funzione di costruzione predefinita new Matrix(), oppure passare un valore null.
|
|
colorTransform:ColorTransform (default = null) — Un oggetto ColorTransform utilizzato per regolare i valori del colore della bitmap. Se non viene fornito alcun oggetto, i colori dell'immagine bitmap non vengono trasformati. Se si deve passare questo parametro ma non si desidera trasformare l'immagine, impostare il parametro su un oggetto ColorTransform creato con la funzione di costruzione predefinita new ColorTransform().
|
|
blendMode:String (default = null) — Un valore stringa, della classe flash.display.BlendMode, che specifica il metodo di fusione da applicare alla bitmap risultante.
|
|
clipRect:Rectangle (default = null) — Un oggetto Rectangle che definisce l'area dell'oggetto di origine da disegnare. Se questo valore non viene fornito, non si verifica alcun troncamento e l'oggetto di origine viene disegnato per intero.
|
|
smoothing:Boolean (default = false) — Un valore booleano che determina se un oggetto BitmapData viene smussato quando viene modificato in scala o ruotato, in base a un'impostazione di modifica in scala o di rotazione nel parametro matrix. Il parametro smoothing viene applicato solo se il parametro source è un oggetto BitmapData. Con smoothing impostato su false, l'immagine BitmapData ruotata o modificata in scala può apparire pixelizzata o frastagliata. Ad esempio, le due immagini seguenti utilizzano lo stesso oggetto BitmapData per il parametro source, ma il parametro smoothing è impostato su true a sinistra e su false a destra:
Per disegnare una bitmap con |
ArgumentError — Il parametro source non è un oggetto BitmapData o DisplayObject.
|
|
SecurityError — L'oggetto source e (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari non provengono dallo stesso dominio del chiamante oppure non sono inclusi in un file SWF accessibile al chiamante mediante una chiamata al metodo Security.allowDomain().
|
|
ArgumentError — L'origine è null o non è un oggetto IBitmapDrawable valido.
|
Vedere anche
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);
| fillRect | () | metodo |
public function fillRect(rect:Rectangle, color:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Riempie un'area rettangolare di pixel con un determinato colore ARGB.
Parametri
rect:Rectangle — L'area rettangolare da riempire.
|
|
color:uint — Il valore di colore ARGB che riempie l'area. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699).
|
TypeError — rect è null.
|
Vedere anche
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 | () | metodo |
public function floodFill(x:int, y:int, color:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e applicando un riempimento di un determinato colore. Il metodo floodFill() è simile allo strumento "secchio di vernice" presente in molti programmi di disegno. Il colore è un colore ARGB che contiene le informazioni sia sull'alfa che sui colori.
Parametri
x:int — La coordinata x dell'immagine.
|
|
y:int — La coordinata y dell'immagine.
|
|
color:uint — Il colore ARGB da utilizzare come riempimento.
|
(10, 10) in cui tutti i colori corrispondono al colore di quel punto.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 | () | metodo |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Determina il rettangolo di destinazione su cui agisce la chiamata a applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filter.
Ad esempio, un filtro sfocatura agisce di solito su un'area più vasta delle dimensioni dell'immagine originale. Un'immagine di 100 x 200 pixel che viene filtrata da un'istanza BlurFilter predefinita dove blurX = blurY = 4 genera un rettangolo di destinazione di (-2,-2,104,204). Il metodo generateFilterRect() consente di determinare in anticipo le dimensioni di questo rettangolo di destinazione per stabilire correttamente le dimensioni dell'immagine di destinazione prima di un'operazione di filtro.
Alcuni filtri troncano il rettangolo di destinazione in base alle dimensioni dell'immagine di origine. Ad esempio, un filtro DropShadow interno non genera un risultato più grande della relativa immagine di origine. In questa API, l'oggetto BitmapData viene utilizzato come parametro bounds di origine e non come parametro rect di origine.
Parametri
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
filter:BitmapFilter — L'oggetto filter utilizzato per calcolare il rettangolo di destinazione.
|
Rectangle — Un rettangolo di destinazione calcolato mediante un'immagine, il parametro sourceRect e un filtro.
|
TypeError — sourceRect o filter sono null.
|
generateFilterRect() per determinare l'area rettangolare che verrà occupata dal risultato di un filtro sfocatura. I risultati del metodo generateFilterRect() vengono prodotti dalla funzione trace().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() non applica il filtro. Chiamare il metodo applyFilter() per applicare il filtro. | getColorBoundsRect | () | metodo |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap (se il parametro findColor è impostato su true) oppure che racchiude completamente tutti i pixel che non includono il colore specificato (se findColor è false).
Ad esempio, se si dispone di un'immagine di origine e si desidera determinare il rettangolo che contiene un canale alfa diverso da 0, passare {mask: 0xFF000000, color: 0x00000000} come parametri. Se il parametro findColor è impostato su true, vengono cercati all'interno dell'intera immagine i limiti dei pixel per i quali (value & mask) == color (dove value è il valore di colore del pixel). Se il parametro findColor è impostato su false, vengono cercati all'interno dell'intera immagine i limiti dei pixel per i quali (value & mask) != color (dove value è il valore del colore del pixel). Per determinare lo spazio bianco attorno all'immagine, passare {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} per trovare i limiti dei pixel diversi dal bianco.
Parametri
mask:uint — Un valore esadecimale che specifica i bit del colore ARGB da considerare. Il valore del colore viene combinato con questo valore esadecimale utilizzando l'operatore & (AND bit a bit).
|
|
color:uint — Un valore esadecimale che specifica il colore ARGB da far corrispondere (se findColor è impostato su true) o da non far corrispondere (se findColor è impostato su false).
|
|
findColor:Boolean (default = true) — Se il valore è impostato su true, restituisce i limiti di un valore di colore in un'immagine. Se il valore è impostato su false, restituisce i limiti del punto in cui questo colore non esiste in un'immagine.
|
Rectangle — L'area dell'immagine che è del colore specificato.
|
getColorBoundsRect() per determinare il rettangolo in cui i pixel sono rossi (0xFF0000), infine lo stesso metodo viene chiamato nuovamente per determinare il rettangolo in cui i pixel non sono rossi (impostando il parametro findColor su false: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 | () | metodo |
public function getPixel(x:int, y:int):uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y). Il metodo getPixel() restituisce un valore di pixel non moltiplicato. Non viene restituita alcuna informazione sull'alfa.
Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.
Parametri
x:int — La posizione x del pixel.
|
|
y:int — La posizione y del pixel.
|
uint — Un numero che rappresenta un valore in pixel RGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, il metodo restituisce 0.
|
Vedere anche
getPixel() per determinare il valore del colore nel pixel in alto a sinistra:import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(1, 1); trace(pixelValue.toString(16)); // ff0000;
| getPixel32 | () | metodo |
public function getPixel32(x:int, y:int):uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB. Questo metodo è simile al metodo getPixel(), che restituisce un colore RGB senza dati relativi al canale alfa.
Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.
Parametri
x:int — La posizione x del pixel.
|
|
y:int — La posizione y del pixel.
|
uint — Un numero che rappresenta un valore in pixel ARGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0.
|
Vedere anche
getPixel32() per determinare il valore del colore nel pixel in alto a sinistra. Infine, vengono determinati i valori esadecimali di ciascun componente del colore (alfa, rosso, verde e blu):import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(1, 1); 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 | () | metodo |
public function getPixels(rect:Rectangle):ByteArray
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Genera un array di byte da un'area rettangolare di dati pixel. Scrive nell'array di byte un numero intero senza segno (un valore di pixel a 32 bit non moltiplicato) per ogni pixel.
Parametri
rect:Rectangle — Un'area rettangolare dell'oggetto BitmapData corrente.
|
ByteArray — Un array di byte (ByteArray) che rappresenta i pixel del rettangolo (Rectangle) specificato.
|
TypeError — rect è null.
|
Vedere anche
getPixel() per riempire l'oggetto ByteArray con i valori di pixel dell'oggetto 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);
| hitTest | () | metodo |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap. Durante l'esecuzione del rilevamento per zone non vengono considerati allungamenti, rotazioni o altre trasformazioni per nessun oggetto.
Se un'immagine è opaca, questo metodo la considera un rettangolo completamente opaco. Entrambe le immagini devono essere trasparenti per eseguire un rilevamento per zone a livello di pixel che consideri la trasparenza. Quando si verificano due immagini trasparenti, i parametri di soglia dell'alfa controllano quali valori di canale alfa (da 0 a 255) vengono considerati opachi.
Parametri
firstPoint:Point — Una posizione nell'angolo superiore sinistro dell'immagine BitmapData, in uno spazio di coordinate arbitrario. Lo stesso spazio di coordinate viene utilizzato per definire il parametro secondBitmapPoint.
|
|
firstAlphaThreshold:uint — Il valore di canale alfa più alto che viene considerato opaco per la verifica di rilevamento delle zone attive.
|
|
secondObject:Object — Un oggetto Rectangle, Point, Bitmap o BitmapData.
|
|
secondBitmapDataPoint:Point (default = null) — Un punto che definisce la posizione di un pixel nel secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject è un oggetto BitmapData.
|
|
secondAlphaThreshold:uint (default = 1) — Il valore di canale alfa più alto che viene considerato opaco per il secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject è un oggetto BitmapData ed entrambi gli oggetti BitmapData sono trasparenti.
|
Boolean — Un valore true se si verifica un contatto, false in caso contrario.
|
ArgumentError — Il parametro secondObject non è un oggetto Point, Rectangle, Bitmap o BitmapData.
|
|
TypeError — firstPoint è null.
|
hitTest() con un oggetto Point come secondObject. Nella prima chiamata, l'oggetto Point definisce l'angolo superiore sinistro dell'oggetto BitmapData, che non è opaco, mentre nella seconda chiamata, l'oggetto Point definisce il centro dell'oggetto BitmapData, che è opaco.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 | () | metodo |
public function lock():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Blocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, non vengano aggiornati quando questo oggetto BitmapData viene modificato. Per migliorare le prestazioni, utilizzare questo metodo in combinazione con unlock() prima e dopo numerose chiamate al metodo setPixel() o setPixel32().
Vedere anche
bitmapData di un oggetto Bitmap di nome picture. Quindi, chiama il metodo lock() prima di chiamare una funzione personalizzata complessa, complexTransformation(), che modifica l'oggetto BitmapData. (L'oggetto picture e la funzione complexTransformation() non sono definiti in questo esempio.) Anche se la funzione complexTransformation() aggiorna la proprietà bitmapData dell'oggettopicture, le modifiche non vengono applicate fino a quando il codice non chiama il metodo unlock() sull'oggetto bitmapData:import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
| merge | () | metodo |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione. Per ogni canale e ogni pixel, viene calcolato un nuovo valore in base ai valori dei canali dell'origine e ai pixel di destinazione. Ad esempio, nel canale rosso, il nuovo valore viene calcolato come segue (redSrc è il valore del canale rosso per un pixel dell'immagine di origine e redDest è il valoire del canale rosso per il pixel corrispondente dell'immagine di destinazione):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
I valori redMultiplier, greenMultiplier, blueMultiplier e alphaMultiplier sono i moltiplicatori utilizzati per ciascun canale di colore. Utilizzare un valore esadecimale che va da 0 a 0x100 (256), dove 0 specifica il valore completo dalla destinazione utilizzata nel risultato, 0x100 specifica il valore completo dall'origine utilizzata e i numeri compresi specificano la fusione utilizzata (ad esempio 0x80 per 50%).
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
|
|
redMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale rosso.
|
|
greenMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale verde.
|
|
blueMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale blu.
|
|
alphaMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore di trasparenza alfa.
|
TypeError — sourceBitmapData, sourceRect o destPoint sono null.
|
merge(), unendo i pixel del secondo oggetto BitmapData al primo oggetto BitmapData, ma solo nell'area rettangolare specificata: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 | () | metodo |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Riempie un'immagine con pixel che rappresentano disturbi a caso.
Parametri
randomSeed:int — Il numero di scelta casuale da utilizzare. Se si mantengono inalterati tutti gli altri parametri, è possibile generare diversi risultati pseudo casuali variando il valore di scelta casuale. La funzione del disturbo è una funzione di mappatura e non una vera e propria funzione di generazione di numeri casuali, pertanto crea ogni volta gli stessi risultati dalla stessa scelta casuale.
|
|
low:uint (default = 0) — Il valore più basso da generare per ogni canale (da 0 a 255).
|
|
high:uint (default = 255) — Il valore più alto da generare per ogni canale (da 0 a 255).
|
|
channelOptions:uint (default = 7) — Un numero che può essere costituito da una qualunque combinazione dei valori dei quattro canali di colore (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA). È possibile utilizzare l'operatore OR (|) per combinare i valori di canale.
|
|
grayScale:Boolean (default = false) — Un valore booleano. Se il valore è true, viene creata un'immagine in scala di grigi impostando tutti i canali di colore sullo stesso valore. La selezione del canale alfa non viene modificata se si imposta questo parametro su true.
|
Vedere anche
noise(). Tuttavia, il parametro grayscale viene impostato su false per la chiamata al metodo noise() del primo oggetto e su true per la chiamata al metodo noise() del secondo oggetto: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 | () | metodo |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale.
Flash Player utilizza la seguente procedura per generare l'immagine risultante:
redArray, greenArray, blueArray e alphaArray. Ognuno di questi quattro array solitamente contiene 256 valori. Questo metodo consente di supportare gli effetti su più canali. Ogni array di input può contenere valori completi a 32 bit, e non avviene alcuno spostamento quando i valori vengono combinati. Questa routine non supporta il fissaggio di canali singoli.
Se per un canale non viene specificato alcun array, il canale di colore viene copiato dall'immagine di origine all'immagine di destinazione.
Questo metodo può essere utilizzato per numerosi effetti, come la mappatura delle tavolozze generiche (dove un canale viene convertito in un'immagine di colore falsa). È possibile anche utilizzare questo metodo per una serie di algoritmi avanzati per la manipolazione dei colori, come gamma, curve, livelli e quantizzazione.
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'oggetto BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
|
|
redArray:Array (default = null) — Se redArray non è null, red = redArray[valore rosso origine] else red = valore rect origine.
|
|
greenArray:Array (default = null) — Se greenArray non è null, green = greenArray[valore verde origine] else green = valore verde origine.
|
|
blueArray:Array (default = null) — Se blueArray non è null, blue = blueArray[valore blu origine] else blue = valore blu origine.
|
|
alphaArray:Array (default = null) — Se alphaArray non è null, alpha = alphaArray[valore alfa origine] else alpha = valore alfa origine.
|
TypeError — sourceBitmapData, sourceRect o destPoint sono null.
|
paletteMap() per scambiare il rosso con il verde nella metà rettangolare inferiore dell'oggetto BitmapData:
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 | () | metodo |
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
| Versione lettore: | Flash Player 9 |
Genera un'immagine di disturbo Perlin.
L'algoritmo di generazione del disturbo Perlin interpola e combina singole funzioni di disturbo casuale (definite ottave) in un'unica funzione che genera un disturbo casuale dall'aspetto più naturale. Come accade nelle ottave musicali, ogni funzione di ottava è il doppio della frequenza di quella che la precede. Il disturbo Perlin è stato descritto come una "somma frattale di disturbo", dal momento che combina più serie di disturbo con diversi livelli di dettaglio.
Le funzioni di disturbo Perlin possono essere utilizzate per simulare fenomeni naturali e paesaggi, come la trama del legno, le nuvole e le catene montuose. Nella maggior parte dei casi, l'output di una funzione di disturbo Perlin non viene visualizzata direttamente ma viene utilizzata per modificare altre immagini e applicarvi delle variazioni pseudo casuali.
Le funzioni semplici di disturbo casuale digitale spesso producono immagini con punti molto contrastati. Questo tipo di forte contrasto non è tuttavia frequente in natura. L'algoritmo Perlin per il disturbo mescola più funzioni di disturbo che operano a diversi livelli di dettaglio. L'algoritmo crea variazioni più piccole tra valori di pixel adiacenti.
Nota: l'algoritmo Perlin prende il nome da Ken Perlin, che lo ha sviluppato dopo aver generato la grafica computerizzata per il film Tron del 1982. Nel 1997 Perlin ha ricevuto un Oscar nella categoria "Technical Achievement" per la funzione del disturbo Perlin.
Parametri
baseX:Number — La frequenza da utilizzare nella direzione x. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 64 come valore per baseX.
|
|
baseY:Number — La frequenza da utilizzare nella direzione y. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 128 come valore per baseY.
|
|
numOctaves:uint — il numero di ottave o singole funzioni di disturbo da combinare per creare questo disturbo. Un numero più elevato di ottave crea immagini con maggiore dettaglio. Tuttavia, un numero più elevato di ottave richiede tempi di elaborazione più lunghi.
|
|
randomSeed:int — Il numero di scelta casuale da utilizzare. Se si mantengono inalterati tutti gli altri parametri, è possibile generare diversi risultati pseudo casuali variando il valore di scelta casuale. La funzione del disturbo Perlin è una funzione di mappatura e non una vera e propria funzione di generazione di numeri casuali, pertanto dalla stessa scelta casuale crea ogni volta gli stessi risultati.
|
|
stitch:Boolean — Un valore booleano. Se il valore è true, il metodo tenta di attenuare i bordi di transizione dell'immagine per creare delle texture uniformi da utilizzare come riempimenti bitmap affiancati.
|
|
fractalNoise:Boolean — Un valore booleano. Se il valore è true, il metodo genera disturbo frattale; in caso contrario genera turbolenza. Un'immagine con turbolenza presenta delle discontinuità visibili nel gradiente che possono fornire una migliore approssimazione per effetti visivi più nitidi come le fiamme o le onde del mare.
|
|
channelOptions:uint (default = 7) — Un numero che può essere costituito da una qualunque combinazione dei valori dei quattro canali di colore (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA). È possibile utilizzare l'operatore OR (|) per combinare i valori di canale.
|
|
grayScale:Boolean (default = false) — Un valore booleano. Se il valore è true, viene creata un'immagine in scala di grigi impostando ogni singolo canale di colore rosso, verde e blu per valori identici. Il valore del canale alfa non viene modificato se questo valore è impostato su true.
|
|
offsets:Array (default = null) — Un array di punti che corrispondono agli offset x e y di ciascuna ottava. Se si modificano questi valori di offset, è possibile effettuare lo scorrimento fluido di un'immagine perlinNoise. Ogni punto nell'array di offset modifica la funzione di disturbo di un'ottava specifica.
|
perlinNoise() per generare un effetto acquerello rosso e blu: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 | () | metodo |
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine. Flash Player utilizza un valore randomSeed per generare una dissolvenza pixel casuale. Il valore restituito dalla funzione deve essere passato nelle successive chiamate per continuare la dissolvenza pixel fino al suo completamento.
Se l'immagine di origine non è uguale a quella di destinazione, i pixel vengono copiati dall'origine alla destinazione mediante tutte le proprietà. Questo processo consente di effettuare una dissolvenza da un'immagine vuota a un'immagine ricca di elementi.
Se le immagini di origine e di destinazione sono uguali, i pixel vengono riempiti con il parametro color. Questo processo consente di effettuare una dissolvenza in uscita da un'immagine ricca di elementi. Il parametro point di destinazione viene ignorato.
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
|
|
randomSeed:int (default = 0) — La scelta casuale da utilizzare per avviare la dissolvenza pixel.
|
|
numPixels:int (default = 0) — Il valore predefinito è 1/30 dell'area di origine (larghezza x altezza).
|
|
fillColor:uint (default = 0) — Un valore di colore ARGB utilizzato per il riempimento di pixel il cui valore di origine è uguale al valore di destinazione.
|
int — Il nuovo valore di scelta causale da utilizzare per chiamate successive.
|
TypeError — sourceBitmapData, sourceRect o destPoint sono null.
|
|
TypeError — Il valore numPixels è negativo
|
pixelDissolve() per convertire un oggetto BitmapData grigio in uno rosso dissolvendo 40 pixel alla volta finché tutti i pixel hanno cambiato colore:
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 | () | metodo |
public function scroll(x:int, y:int):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scorre un'immagine di una certa quantità di pixel (x, y). Le aree dei bordi fuori dell'area di scorrimento vengono lasciate invariate.
Parametri
x:int — Il valore dello scorrimento orizzontale.
|
|
y:int — Il valore dello scorrimento verticale.
|
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 | () | metodo |
public function setPixel(x:int, y:int, color:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Imposta un singolo pixel di un oggetto BitmapData. Durante l'operazione, il valore corrente del canale alfa dei pixel dell'immagine viene conservato. Il valore del parametro di colore RGB viene gestito come un valore di colore non moltiplicato.
Nota: per migliorare le prestazioni, quando si usa ripetutamente il metodo setPixel() o setPixel32(), chiamare il metodo lock() prima di setPixel() o setPixel32(), quindi chiamare il metodo unlock() dopo aver apportato tutte le modifiche necessarie ai pixel. Questa procedura impedisce che gli oggetti che fanno riferimento a questa istanza BitmapData vengano aggiornati finché non sono state effettuate tutte le modifiche dei pixel.
Parametri
x:int — La posizione x del pixel il cui valore cambia.
|
|
y:int — La posizione y del pixel il cui valore cambia
|
|
color:uint — Il colore RGB risultante del pixel.
|
Vedere anche
setPixel() per tracciare una linea rossa in un oggetto BitmapData:
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 | () | metodo |
public function setPixel32(x:int, y:int, color:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData. Questo metodo è simile al metodo setPixel(); la differenza principale consiste nel fatto che il metodo setPixel32() accetta un valore di colore ARGB che contiene le informazioni sul canale alfa.
Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.
Nota: per migliorare le prestazioni, quando si usa ripetutamente il metodo setPixel() o setPixel32(), chiamare il metodo lock() prima di setPixel() o setPixel32(), quindi chiamare il metodo unlock() dopo aver apportato tutte le modifiche necessarie ai pixel. Questa procedura impedisce che gli oggetti che fanno riferimento a questa istanza BitmapData vengano aggiornati finché non sono state effettuate tutte le modifiche dei pixel.
Parametri
x:int — La posizione x del pixel il cui valore cambia.
|
|
y:int — La posizione y del pixel il cui valore cambia
|
|
color:uint — Il colore ARGB risultante del pixel. Se è la bitmap creata è opaca (non trasparente), la parte di trasparenza alfa di questo valore di colore viene ignorata.
|
Vedere anche
setPixel32() per tracciare una linea rossa trasparente (alfa == 0x60) in un oggetto BitmapData:
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 | () | metodo |
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Converte un array di byte in un'area rettangolare di dati pixel. Per ciascun pixel, viene chiamato il metodo ByteArray.readUnsignedInt() e il valore restituito viene scritto nel pixel. Se l'array di byte termina prima che il rettangolo sia stato disegnato per intero, la funzione viene restituita. I dati previsti nell'array di byte sono valori di pixel ARGB a 32 bit. Sull'array di byte non viene eseguita alcuna ricerca prima o dopo la lettura dei pixel.
Parametri
rect:Rectangle — Specifica l'area rettangolare dell'oggetto BitmapData.
|
|
inputByteArray:ByteArray — Un oggetto ByteArray che consiste di valori di pixel a 32 bit non moltiplicati da utilizzare nell'area rettangolare.
|
EOFError — L'oggetto inputByteArray non contiene dati sufficienti per riempire l'area del rettangolo rect. Il metodo riempie il numero massimo di pixel possibile prima di generare l'eccezione.
|
|
TypeError — rect o inputByteArray sono null.
|
Vedere anche
getPixels() e setPixels() per copiare pixel da un'istanza BitmapData a un'altra.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;
| threshold | () | metodo |
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Prova i valori in pixel di un'immagine in base a una soglia specificata e imposta i pixel che superano la prova a nuovi valori di colore. Se si utilizza il metodo threshold(), è possibile isolare e sostituire le gamme di colore in un'immagine ed eseguire altre operazioni logiche su pixel di immagine.
La logica di verifica del metodo threshold() è la seguente:
((pixelValue & mask) operation (threshold & mask)), impostare il pixel su color;copySource == true, impostare il pixel sul valore di pixel corrispondente di sourceBitmap.Il parametro specifica operation l'operatore di confronto da utilizzare per la verifica di soglia. Ad esempio, se si utilizza "==" come parametro operation, è possibile isolare il valore di un colore specifico in un'immagine. Oppure, se si utilizza {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}, è possibile impostare tutti i pixel di destinazione in modo che siano trasparenti quando l'alfa del pixel dell'immagine di origine è inferiore a 0x7F. Questa tecnica è utilizzabile per transizioni animate ed altri effetti.
Parametri
sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
|
|
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
|
|
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
|
|
operation:String — Uno degli operatori di confronto seguenti, passati come String: "<", "<=", ">", ">=", "==", "!="
|
|
threshold:uint — Il valore su cui si verifica ciascun pixel per vedere se corrisponde alla soglia o la supera.
|
|
color:uint (default = 0) — Il valore di colore su cui è impostato un pixel per vedere se soddisfa la verifica di soglia. Il valore predefinito è 0x00000000.
|
|
mask:uint (default = 0xFFFFFFFF) — La maschera da utilizzare per isolare un componente di colore.
|
|
copySource:Boolean (default = false) — Se il valore è true, i valori dei pixel dell'immagine di origine vengono copiati nella destinazione anche se la verifica della soglia dà esito negativo. Se il valore è false, l'immagine di origine non viene copiata se la verifica della soglia dà esito negativo.
|
uint — Il numero di pixel modificati.
|
TypeError — sourceBitmapData, sourceRect, destPoint o operation sono null.
|
|
ArgumentError — La stringa operation non è un'operazione valida
|
perlinNoise() per aggiungere un motivo rosso e blu all'oggetto BitmapData, quindi utilizza il metodo threshold() per copiare quei pixel dal primo oggetto BitmapData a un secondo oggetto, sostituendo i pixel in cui il valore rosso è superiore a 0x80 (50%) con un pixel impostato su rosso trasparente (0x20FF0000):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 | () | metodo |
public function unlock(changeRect:Rectangle = null):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Sblocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, vengano aggiornati quando questo oggetto BitmapData viene modificato. Per migliorare le prestazioni, utilizzare questo metodo in combinazione con lock() prima e dopo numerose chiamate al metodo setPixel() o setPixel32().
Parametri
changeRect:Rectangle (default = null) — L'area dell'oggetto BitmapData che è stata modificata. Se non si specifica un valore per questo parametro, l'intera area dell'oggetto BitmapData viene considerata modificata.
|
Vedere anche
bitmapData di un oggetto Bitmap di nome picture. Quindi, chiama il metodo lock() prima di chiamare una funzione personalizzata complessa, complexTransformation(), che modifica l'oggetto BitmapData. (L'oggetto picture e la funzione complexTransformation() non sono definiti in questo esempio.) Anche se la funzione complexTransformation() aggiorna la proprietà bitmapData dell'oggettopicture, le modifiche non vengono applicate fino a quando il codice non chiama il metodo unlock() sull'oggetto bitmapData:import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold(). Per effettuare questa operazione, eseguire i passaggi descritti:
url, che corrisponde alla posizione e al nome del file di immagine.completeHandler() completa la manipolazione delle immagini.request viene quindi passato a loader.load(), che carica l'immagine in memoria utilizzando un oggetto di visualizzazione.completeHandler() esegue quindi le seguenti operazioni:
duplicate, che a propria volta chiama il metodo duplicateImage(), che crea un duplicato dell'immagine originale. duplicate.operation — Applica il nuovo colore quando il valore di soglia è superiore o uguale all'originale.threshold — Il valore rispetto al quale viene confrontato ogni pixel (in questo esempio, il grigio chiaro con un'impostazione alfa pari a 0xCC). color — Il colore su cui sono impostati i pixel per passare la prova della soglia (in questo caso, giallo uniforme).mask — L'esatto opposto del colore (blu trasparente).copySource — Impostata su false, che indica che i valori dei pixel non vengono copiati se il valore di soglia non viene superato. Questo valore non ha alcun significato poiché l'immagine viene duplicata e vengono modificati solo i pixel che passano la prova della soglia.threshold() mediante le variabili che lo precedono. L'equazione della soglia risultante è la seguente: if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00. Note:
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);
}
}
}
Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti
Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/display/BitmapData.html