Packageflash.display
Classepublic class BitmapData
HéritageBitmapData Inheritance Object
Implémente IBitmapDrawable

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe BitmapData vous permet d’utiliser les données (pixels) d’un objet Bitmap. Les méthodes de cette classe vous permettent de créer des images bitmap transparentes ou opaques dimensionnées de manière arbitraire et de les manipuler à votre guise lors de l'exécution. Vous pouvez également accéder aux objets BitmapData pour une image bitmap chargée avec la classe flash.display.Loader.

Cette classe vous permet de séparer les opérations de rendu de bitmap dans les routines de mise à jour de l'affichage interne de Flash Player. En manipulant un objet BitmapData directement, vous pouvez créer des images complexes sans utiliser de temps système supplémentaire par image résultant du retraçage constant du contenu des données vectorielles.

Les méthodes de la classe BitmapData prennent en charge les effets qui ne sont pas disponibles par le biais des filtres associés aux objets d'affichage non bitmap.

Un objet BitmapData contient un tableau de données de pixels. Ces données peuvent représenter une bitmap entièrement opaque ou entièrement transparente contenant des données de canal alpha. Chaque type d'objet BitmapData est stocké en tant que tampon converti en entiers 32 bits. Chaque entier 32 bits détermine les propriétés d'un pixel unique du bitmap.

Chaque entier 32 bits est une combinaison de quatre valeurs de canal de 8 bits (de 0 à 255) décrivant les valeurs de transparence alpha et les valeurs de rouge, vert et bleu (ARVB) du pixel. (Pour les valeurs ARVB, l’octet le plus significatif représente la valeur du canal alpha, suivie de rouge, vert et bleu.)

Les quatre canaux (alpha, rouge, vert et bleu) sont représentés sous forme de nombres lorsque vous les utilisez avec la méthode BitmapData.copyChannel() ou les propriétés DisplacementMapFilter.componentX et DisplacementMapFilter.componentY. Ces nombres sont en retour représentés par les constantes suivantes dans la classe BitmapDataChannel :

Vous pouvez associer des objets BitmapData à un objet Bitmap à l'aide de la propriété bitmapData de l'objet Bitmap.

Vous pouvez utiliser un objet BitmapData pour remplir un objet Graphics à l'aide de la méthode Graphics.beginBitmapFill().

Les largeur et hauteur maximales d'un objet BitmapData sont de 2 880 pixels.

Les appels de toute méthode ou propriété d’un objet BitmapData renvoient une erreur ArgumentError si l’objet BitmapData n’est pas valide (si height == 0 et width == 0, par exemple) ou s’il a été éliminé par le biais de dispose().

Consulter les exemples

Voir aussi

flash.display.Bitmap.bitmapData
flash.display.Graphics.beginBitmapFill()
flash.display.Loader


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  height : int
[lecture-seule] La hauteur de l'image bitmap en pixels.
BitmapData
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
  rect : Rectangle
[lecture-seule] Le rectangle qui délimite la taille et l'emplacement de l'image bitmap.
BitmapData
  transparent : Boolean
[lecture-seule] Définit si l'image bitmap prend en charge la transparence par pixel.
BitmapData
  width : int
[lecture-seule] Largeur de l'image bitmap en pixels.
BitmapData
Méthodes publiques
 MéthodeDéfini par
  
BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Crée un objet BitmapData à la largeur et la hauteur spécifiées.
BitmapData
  
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Prend une image source et un objet filtre et génère l’image filtrée.
BitmapData
  
Renvoie un nouvel objet BitmapData, clone de l'occurrence d’origine avec une copie exacte du bitmap contenu.
BitmapData
  
Définit les valeurs de couleur dans une zone spécifiée d’une image bitmap avec un objet ColorTransform.
BitmapData
  
compare(otherBitmapData:BitmapData):Object
Compare deux objets BitmapData.
BitmapData
  
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Transfère les données du canal d’un autre objet BitmapData ou de l’objet BitmapData actuel vers un canal de l’objet BitmapData actuel.
BitmapData
  
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Met en place une routine rapide permettant de manipuler les pixels de différentes images sans effets d’étirement, de rotation ou de couleur.
BitmapData
  
Libère la mémoire utilisée pour stocker l’objet BitmapData.
BitmapData
  
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Dessine l’objet d'affichage source sur l’image bitmap avec la fonctionnalité de rendu vectoriel de Flash Player.
BitmapData
  
fillRect(rect:Rectangle, color:uint):void
Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée.
BitmapData
  
floodFill(x:int, y:int, color:uint):void
Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l'aide d'une certaine couleur.
BitmapData
  
Détermine le rectangle de destination affecté par l'appel de la méthode applyFilter(), en fonction d'un objet BitmapData, d'un rectangle source et d'un objet filtre spécifiés.
BitmapData
  
getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Détermine une zone rectangulaire qui regroupe entièrement tous les pixels d’une couleur spécifiée au sein de l’image bitmap (si le paramètre findColor est défini sur true) ou tous les pixels qui n’incluent pas la couleur spécifiée (si le paramètre findColor est défini sur false).
BitmapData
  
Renvoie un entier représentant une valeur de pixels RVB à partir d'un objet BitmapData à un point spécifique (x, y).
BitmapData
  
Renvoie une valeur de couleur ARVB qui contient des données de canal alpha, ainsi que les données RVB.
BitmapData
  
Génère un tableau d’octets à partir d’une zone rectangulaire de données de pixels.
BitmapData
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
  
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Procède à la détection des clics au niveau des pixels entre une image bitmap et un point, un rectangle ou toute autre image bitmap.
BitmapData
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
  
Verrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, ne sont pas mis à jour lorsque celui est modifié.
BitmapData
  
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Procède au mélange canal par canal d’une image source vers une image de destination.
BitmapData
  
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Remplit une image avec des pixels représentant un bruit aléatoire.
BitmapData
  
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Remappe les valeurs des canaux de couleur dans une image recevant jusqu’à quatre tableaux de données de palette de couleurs, un pour chaque canal.
BitmapData
  
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Génère une image de bruit Perlin.
BitmapData
  
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Procède à la dissolution de pixels, soit d’une image source vers une image de destination, soit en utilisant la même image.
BitmapData
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
  
scroll(x:int, y:int):void
Fait défiler une image en fonction d’un certain montant en pixels (x, y).
BitmapData
  
setPixel(x:int, y:int, color:uint):void
Définit un pixel unique d’un objet BitmapData.
BitmapData
  
setPixel32(x:int, y:int, color:uint):void
Définit les valeurs de couleur et transparence alpha d'un pixel unique d’un objet BitmapData.
BitmapData
  
setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Convertit un tableau d’octets en une zone rectangulaire de données de pixels.
BitmapData
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
  
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Teste les valeurs de pixels d'une image selon un seuil spécifié et définit les pixels qui réussissent le test sur de nouvelles valeurs de couleur.
BitmapData
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
  
unlock(changeRect:Rectangle = null):void
Déverrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, sont mis à jour lorsque celui est modifié.
BitmapData
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Détails des propriétés
heightpropriété
height:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La hauteur de l'image bitmap en pixels.


Implémentation
    public function get height():int
rectpropriété 
rect:Rectangle  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Le rectangle qui délimite la taille et l'emplacement de l'image bitmap. Le haut et le côté gauche du rectangle sont définis sur 0 ; la largeur et la hauteur sont égales à la largeur et à la hauteur, en pixels, de l'objet BitmapData.


Implémentation
    public function get rect():Rectangle
transparentpropriété 
transparent:Boolean  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Définit si l'image bitmap prend en charge la transparence par pixel. Vous pouvez définir cette valeur uniquement lorsque vous créez un objet BitmapData en transmettant la valeur true au paramètre transparent du constructeur. Après avoir créé un objet BitmapData, vous pouvez alors vérifier s'il prend en charge la transparence par pixel en déterminant si la valeur de la propriété transparent est true.


Implémentation
    public function get transparent():Boolean
widthpropriété 
width:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Largeur de l'image bitmap en pixels.


Implémentation
    public function get width():int
Détails du constructeur
BitmapData()Constructeur
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet BitmapData à la largeur et la hauteur spécifiées. Si vous spécifiez une valeur pour le paramètre fillColor, chaque pixel du bitmap est défini sur cette couleur.

Par défaut, le·bitmap créée est transparente, sauf si vous transmettez la valeur false au paramètre transparent. Une fois le·bitmap opaque créée, vous ne pouvez pas la transformer en bitmap transparente. Chaque pixel d'une bitmap opaque utilise uniquement 24 bits d'informations de canal de couleur. Si vous réglez le·bitmap sur transparent, chaque pixel utilise 32 bits d'informations de canal de couleur, y compris un canal de transparence alpha.

Les largeur et hauteur maximales d'un objet BitmapData sont de 2 880 pixels. Si vous spécifiez une valeur de largeur ou de hauteur supérieure à 2880, la nouvelle occurrence n'est pas créée.

Paramètres
width:int — Largeur de l'image bitmap en pixels.
 
height:int — La hauteur de l'image bitmap en pixels.
 
transparent:Boolean (default = true) — Spécifie si l'image bitmap prend en charge la transparence par pixel. La valeur par défaut est true (transparent). Pour créer une bitmap entièrement transparente, réglez la valeur du paramètre transparent sur true et celle du paramètre fillColor sur 0x00000000 (ou sur 0). Le réglage de la propriété transparent sur false peut entraîner une légère amélioration des performances de rendu.
 
fillColor:uint (default = 0xFFFFFFFF) — Valeur de couleur ARVB 32 bits utilisée pour remplir la zone de l'image bitmap. La valeur par défaut est 0xFFFFFFFF (blanc uni).

Lance
ArgumentError — La largeur et/ou la hauteur ne sont pas valides (inférieures ou égales à zéro ou supérieures à 2 880).
Détails des méthodes
applyFilter()méthode
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Prend une image source et un objet filtre et génère l’image filtrée.

Cette méthode repose sur le comportement des objets filtres intégrés, qui déterminent le rectangle de destination affecté par un rectangle source d'entrée.

Une fois le filtre appliqué, la taille de l'image obtenue peut être supérieure à celle de l'image d'entrée. Par exemple, si vous utilisez une classe BlurFilter pour rendre flou un rectangle source de (50,50,100,100) et un point de destination de (10,10), la zone modifiée sur l'image de destination est supérieure à (10,10,60,60) en raison du flou. Cela se produit en interne au cours de l'appel applyFilter().

Si le paramètre sourceRect du paramètre sourceBitmapData est une zone intérieure, telle que (50,50,100,100) sur une image 200 x 200, le filtre utilise les pixels source hors du paramètre sourceRect pour générer le rectangle de destination.

Si l’objet BitmapData et l’objet spécifié en tant que paramètre sourceBitmapData sont identiques, Flash Player utilise une copie temporaire de l’objet pour effectuer le filtrage. Pour optimiser les performances, évitez ce cas de figure.

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un autre objet BitmapData ou faire référence à l'occurrence de BitmapData actuelle.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de l'image de destination (l'occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source.
 
filter:BitmapFilter — Objet filtre utilisé pour effectuer l'opération de filtrage. Chaque type de filtre dispose d'exigences spécifiques, comme suit :
  • BlurFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes. Si les formats des images sont différents, la copie de l'image source effectuée lors du filtrage correspond au format de l'image de destination.
  • BevelFilter, DropShadowFilter, GlowFilter, ChromeFilter - L'image de destination de ces filtres doit être transparente. L'appel de DropShadowFilter ou de GlowFilter permet de créer une image contenant les données de canal alpha de l'ombre portée ou du rayonnement. Il ne permet pas de créer l'ombre portée sur l'image de destination. Si vous utilisez l'un de ces filtres sur une image de destination opaque, une exception est renvoyée (ActionScript 3.0).
  • ConvolutionFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes.
  • ColorMatrixFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes.
  • DisplacementMapFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes à condition que leurs formats soient identiques.


Lance
TypeError — Les paramètres sourceBitmapData, sourceRect, destPoint ou filter sont réglés sur la valeur null.
 
IllegalOperationError — La transparence des objets BitmapData n’est pas compatible avec l’opération de filtrage.

Voir aussi


Exemple

L'exemple suivant indique comment appliquer un filtre de flou à une occurrence BitmapData :

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()méthode 
public function clone():BitmapData

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Renvoie un nouvel objet BitmapData, clone de l'occurrence d’origine avec une copie exacte du bitmap contenu.

Valeur renvoyée
BitmapData — Nouvel objet BitmapData identique à l'original.

Exemple

L'exemple suivant indique comment cloner une occurrence BitmapData. Elle indique également que lorsque vous modifiez l'occurrence BitmapData clonée, l'original reste tel quel :

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()méthode 
public function colorTransform(rect:Rectangle, colorTransform:ColorTransform):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Définit les valeurs de couleur dans une zone spécifiée d’une image bitmap en utilisant un objet ColorTransform. Si le rectangle correspond aux limites de l'image bitmap, cette méthode transforme les valeurs de couleur de l'image tout entière.

Paramètres

rect:Rectangle — Objet Rectangle qui définit la zone de l'image dans laquelle l'objet ColorTransform est appliqué.
 
colorTransform:ColorTransform — Objet ColorTransform décrivant les valeurs de transformation de couleur à appliquer.


Lance
TypeError — Les paramètres rect ou colorTransform sont définis sur null.

Voir aussi


Exemple

L'exemple suivant indique comment appliquer une transformation de couleur à la partie gauche (rectangle) d'un objet BitmapData :

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()méthode 
public function compare(otherBitmapData:BitmapData):Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Compare deux objets BitmapData. S’ils ont tous deux les mêmes dimensions (largeur et hauteur), la méthode renvoie un nouvel objet BitmapData, dans lequel chaque pixel correspond à la « différence » entre les pixels des deux objets source :

Prenons l’exemple des deux objets BitmapData suivants :

  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
  

Remarque : les couleurs utilisées pour remplir les deux objets BitmapData ont des valeurs RVB légèrement différentes (0xFF8800 et 0xCC6600). L’utilisation de la méthode compare() entraîne la création d’un objet BitmapData dont chaque pixel indique la différence entre les valeurs RVB des deux bitmaps.

Prenez l’exemple des deux objets BitmapData suivants, dans lesquels les couleurs RVB sont identiques, mais les valeurs alpha sont différentes :

  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
  

L’utilisation de la méthode compare() entraîne la création d’un objet BitmapData dont chaque pixel indique la différence entre les valeurs alpha des deux bitmaps.

Si les objets BitmapData sont équivalents (largeur, hauteur et valeurs de pixels identiques), la méthode renvoie la valeur 0.

Si les largeurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -3.

Si les hauteurs des objets BitmapData ne sont pas identiques, mais que les largeurs sont les mêmes, la méthode renvoie la valeur -4.

L’exemple suivant compare deux objets Bitmap de différentes largeurs (50 et 60) :

  var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000);
  var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00);
  trace(bmd1.compare(bmd2)); // -4
  

Paramètres

otherBitmapData:BitmapData — Objet BitmapData à comparer à l’objet BitmapData source.

Valeur renvoyée
Object — S’ils ont tous deux les mêmes dimensions (largeur et hauteur), la méthode renvoie un nouvel objet BitmapData, qui reprend la différence entre les deux objets (voir la discussion principale). Si les objets BitmapData sont équivalents, la méthode renvoie la valeur 0. Si les largeurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -3. Si les hauteurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -4.

Lance
TypeError — Le paramètre otherBitmapData est défini sur null.

Exemple

L'exemple suivant affiche la valeur d'un pixel dans l'objet BitmapData qui résulte de la comparaison entre deux objets BitmapData de mêmes dimensions :

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()méthode 
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Transfère les données du canal d’un autre objet BitmapData ou de l’objet BitmapData actuel vers un canal de l’objet BitmapData actuel. Toutes les données contenues dans les autres canaux de l'objet BitmapData de destination sont préservées.

La valeur du canal source et de destination peut être l'une des valeurs suivantes :

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'objet BitmapData actuel.
 
sourceRect:Rectangle — Objet Rectangle source. Pour copier uniquement les données de canal à partir d'une zone de taille inférieure sur le·bitmap, spécifiez un rectangle source dont la taille est inférieure à la taille globale de l'objet BitmapData.
 
destPoint:Point — Objet Point de destination qui représente le coin supérieur gauche de la zone rectangulaire dans laquelle les nouvelles données de canal sont placées. Pour copier uniquement les données de canal d'une zone vers une autre sur l'image de destination, spécifiez un point autre que (0,0).
 
sourceChannel:uint — Canal source. Utilisez une valeur provenant de la classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).
 
destChannel:uint — Canal de destination. Utilisez une valeur provenant de la classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).


Lance
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.

Voir aussi


Exemple

L'exemple suivant indique comment copier le canal rouge dans un objet BitmapData, dans son propre canal bleu, dans une zone de 20 x 20 pixels :

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()méthode 
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Met en place une routine rapide permettant de manipuler les pixels de différentes images sans effets d’étirement, de rotation ou de couleur. Cette méthode copie une zone rectangulaire d'une image source dans une zone rectangulaire de taille identique au point de destination de l'objet BitmapData de destination.

Si vous incluez les paramètres alphaBitmap et alphaPoint, vous pouvez utiliser une image secondaire en tant que source alpha pour l'image source. Si l'image source contient des données alpha, les deux ensembles de données alpha sont utilisés pour composer des pixels de l'image source vers l'image de destination. Le paramètre alphaPoint est le point, sur l'image alpha, correspondant au coin supérieur gauche du rectangle source. Aucun pixel situé hors de l'intersection de l'image source et de l'image alpha n’est copié sur l'image de destination.

La propriété mergeAlpha contrôle si le canal alpha est utilisé ou non lorsqu'une image transparente est copiée sur une autre image transparente. Pour copier des pixels avec les données du canal alpha, définissez la propriété mergeAlpha sur true. Par défaut, la propriété mergeAlpha est définie sur false.

Paramètres

sourceBitmapData:BitmapData — Image bitmap d'entrée à partir de laquelle les pixels sont copiés. L'image source peut être une occurrence de BitmapData différente ou peut faire référence à l'occurrence de BitmapData actuelle.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de destination représentant le coin supérieur gauche de la zone rectangulaire dans laquelle les nouveaux pixels sont placés.
 
alphaBitmapData:BitmapData (default = null) — Source de l'objet BitmapData alpha secondaire.
 
alphaPoint:Point (default = null) — Point, sur l'objet BitmapData alpha, correspondant au coin supérieur gauche du paramètre sourceRect.
 
mergeAlpha:Boolean (default = false) — Pour utiliser le canal alpha, définissez la valeur sur true. Pour copier des pixels sans canal alpha, définissez la valeur sur false.


Lance
TypeError — Les paramètres sourceBitmapData, sourceRect et destPoint sont définis sur null.

Exemple

L'exemple suivant indique comment copier des pixels à partir d'une zone de 20 x 20 pixels d'un objet BitmapData vers un autre objet BitmapData :

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()méthode 
public function dispose():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Libère la mémoire utilisée pour stocker l’objet BitmapData.

Lorsque la méthode dispose() est appelée sur une image, la largeur et la hauteur de celle-ci sont définies sur 0. Tous les appels ultérieurs des méthodes ou des propriétés de cette occurrence de BitmapData échouent et une exception est renvoyée.


Exemple

L'exemple suivant illustre l'effet de l'appel d'une méthode d'objet BitmapData consécutif à l'appel de la méthode dispose() (une exception est renvoyée) :
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()méthode 
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Dessine l’objet d'affichage source sur l’image bitmap avec la fonctionnalité de rendu vectoriel de Flash Player. Vous pouvez spécifier les paramètres matrix, colorTransform, blendMode, ainsi qu’un paramètre de destination clipRect pour contrôler l’exécution du rendu. Vous pouvez éventuellement indiquer si le bitmap doit être lissé lorsqu’il est redimensionné (cette opération ne fonctionne que si l’objet source est un objet BitmapData).

Cette méthode correspond directement au mode de traçage des objets à l'aide de la fonctionnalité de rendu vectoriel standard dans l'interface de l'outil de programmation.

L’objet d'affichage source n'utilise pas les transformations appliquées pour cet appel. Il est traité de la manière dont il apparaît dans la bibliothèque ou dans le fichier, sans transformation de matrice, de couleurs et sans mode de fondu. Pour dessiner un objet d'affichage, tel qu'un clip, en utilisant ses propres propriétés de transformation, vous pouvez copier sa propriété transform dans la propriété transform de l’objet Bitmap qui utilise l’objet BitmapData.

Remarque : l’objet source et (dans le cas d’un objet Sprite ou MovieClip) tous ses objets enfants doivent provenir du même domaine que l’appelant ou résider dans un fichier SWF accessible à l'appelant par le biais de la méthode Security.allowDomain(). Si ces conditions ne sont pas remplies, la méthode draw() ne dessine rien.

Cette méthode est prise en charge sur RTMP dans Flash Player Mise à jour 3 et supérieures. Vous pouvez contrôler l'accès aux flux sur un serveur FMS (Flash Media Server) dans un script coté serveur. Pour plus de détails, consultez les propriétés Client.audioSampleAccess et Client.videoSampleAccess dans le Guide de référence ActionScript d'Adobe Flash Media Server côté serveur.

Paramètres

source:IBitmapDrawable — Objet d'affichage ou objet BitmapData à dessiner sur l’objet BitmapData. (Les classes DisplayObject et BitmapData mettent en œuvre l’interface IBitmapDrawable.)
 
matrix:Matrix (default = null) — Objet Matrix utilisé pour redimensionner, faire pivoter ou traduire les coordonnées du bitmap. Si vous ne souhaitez pas appliquer une matrice de transformation à l’image, réglez ce paramètre sur une matrice d’identité, créée à l’aide du constructeur new Matrix() par défaut, ou transmettez une valeur null.
 
colorTransform:ColorTransform (default = null) — Objet ColorTransform utilisé pour définir les valeurs de couleur du bitmap. Si aucun objet n'est fourni, les couleurs de l'image bitmap ne sont pas transformées. Si ce paramètre doit être transmis, alors que vous ne souhaitez pas transformer l’image, réglez-le sur un objet ColorTransform créé à l'aide du constructeur new ColorTransform() par défaut.
 
blendMode:String (default = null) — Chaîne extraite de la classe flash.display.BlendMode, qui spécifie le mode de fondu à appliquer au·bitmap générée par l’opération.
 
clipRect:Rectangle (default = null) — Objet Rectangle qui définit la zone de l'image source à dessiner. Si cette valeur n'est pas fournie, aucun découpage n'est effectué et l’objet source est dessiné dans sa totalité.
 
smoothing:Boolean (default = false) — Une valeur booléenne qui détermine si l'objet BitmapData doit être lissé lors d'une mise à l'échelle ou d'une rotation demandée par le paramètre matrix. Le paramètre smoothing s'applique uniquement lorsque le paramètre source est un objet BitmapData. Lorsque le paramètre smoothing est défini sur false, l'image BitmapData pivotée ou mise à l'échelle peut sembler pixélisée ou irrégulière. Par exemple, les deux images suivantes utilisent le même objet BitmapData pour le paramètre source, mais le paramètre smoothing est défini sur true à gauche et sur false à droite :

Le traçage d'un bitmap avec le paramètre smoothing défini sur true prend plus de temps que lorsque smoothing est défini sur false.


Lance
ArgumentError — Le paramètre source n'est pas un objet BitmapData ou DisplayObject.
 
SecurityError — L’objet source et (dans le cas d’un objet Sprite ou MovieClip) tous les objets enfants correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un fichier SWF auquel peut accéder celui-ci par le biais de la méthode Security.allowDomain().
 
ArgumentError — La source est réglée sur null ou n’est pas un objet IBitmapDrawable valide.

Voir aussi


Exemple

L'exemple suivant indique comment dessiner un objet TextField sur un objet BitmapData :

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()méthode 
public function fillRect(rect:Rectangle, color:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée.

Paramètres

rect:Rectangle — Zone rectangulaire à remplir.
 
color:uint — Valeur de couleur ARVB qui remplit la zone. Les couleurs ARVB sont souvent spécifiées au format hexadécimal, par exemple 0xFF336699.


Lance
TypeError — Le paramètre rect est défini sur null.

Voir aussi


Exemple

L'exemple suivant indique comment remplir une zone rectangulaire d'un objet BitmapData en bleu :

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()méthode 
public function floodFill(x:int, y:int, color:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l'aide d'une certaine couleur. La méthode floodFill() est similaire à l'outil Pot de peinture dans divers programmes de dessin. La couleur ARVB contient des informations alpha ainsi que des informations sur les couleurs.

Paramètres

x:int — Coordonnée x de l'image.
 
y:int — Coordonnée y de l'image.
 
color:uint — Couleur ARVB à utiliser pour le remplissage.


Exemple

L'exemple suivant indique comment remplir la zone d'un objet BitmapData. Dans ce cas, la zone qui entoure le pixel défini par le point (10, 10) où toutes les couleurs correspondent à ce stade avec le rouge

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()méthode 
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Détermine le rectangle de destination affecté par l'appel de la méthode applyFilter(), en fonction d'un objet BitmapData, d'un rectangle source et d'un objet filtre spécifiés.

Par exemple, un filtre de flou affecte normalement une zone dont la taille est supérieure à celle de l'image d'origine. Une image de 100 x 200 pixels filtrée par une occurrence BlurFilter par défaut, où blurX = blurY = 4 génère un rectangle de destination de (-2,-2,104,204). La méthode generateFilterRect() permet de déterminer la taille de ce rectangle de destination à l'avance, de sorte que vous puissiez dimensionner l'image de destination en conséquence avant d'effectuer une opération de filtrage.

Certains filtres découpent leur rectangle de destination selon la taille de l'image source. Par exemple, un filtre DropShadow interne ne génère pas de résultat de taille supérieure à celle de son image source. Dans cette interface API, l'objet BitmapData fait office de limites source et n'est pas utilisé en tant que paramètre rect.

Paramètres

sourceRect:Rectangle — Rectangle définissant la zone de l'image source à utiliser en tant qu'entrée.
 
filter:BitmapFilter — Objet filtre utilisé pour calculer les dimensions du rectangle de destination.

Valeur renvoyée
Rectangle — Rectangle de destination dont les dimensions ont été calculées à l'aide d'une image, du paramètre sourceRect et d'un filtre.

Lance
TypeError — Le paramètre sourceRect ou filter est défini sur une valeur null.

Exemple

L'exemple suivant indique comment utiliser la méthode generateFilterRect() pour déterminer la zone rectangulaire devant recevoir le résultat du filtre de flou. Les résultats de la méthode generateFilterRect() sont renvoyés par la fonction 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);
Tenez compte du fait que la méthode generateFilterRect() ne s'applique pas au filtre. Appelez la méthode applyFilter() pour appliquer le filtre.
getColorBoundsRect()méthode 
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Détermine une zone rectangulaire qui regroupe entièrement tous les pixels d’une couleur spécifiée au sein de l’image bitmap (si le paramètre findColor est défini sur true) ou tous les pixels qui n’incluent pas la couleur spécifiée (si le paramètre findColor est défini sur false).

Par exemple, si vous disposez d'une image source et souhaitez déterminer le rectangle de l'image qui contient un canal alpha différent de zéro, utilisez {mask: 0xFF000000, color: 0x00000000} en tant que paramètres. Si le paramètre findColor est défini sur true, les limites de pixels caractérisées par (value & mask) == color (value correspondant à la valeur de la couleur du pixel) sont recherchées dans l’image entière. Si le paramètre findColor est défini sur false, la recherche des limites des pixels porte sur l'ensemble de l'image pour laquelle (value & mask) != color (où value correspond à la valeur de couleur du pixel). Pour déterminer l'espace blanc entourant une image, transmettez {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} pour rechercher les limites des pixels qui ne sont pas blancs.

Paramètres

mask:uint — Valeur hexadécimale qui spécifie les bits de la couleur ARVB à prendre en compte. La valeur de la couleur est combinée à cette valeur hexadécimale à l'aide de l’opérateur & (AND au niveau du bit).
 
color:uint — Valeur hexadécimale qui spécifie la couleur ARVB à prendre en compte (si findColor est défini sur true) ou à ne pas prendre en compte (si findColor est défini sur false).
 
findColor:Boolean (default = true) — Si la valeur est définie sur true, renvoie les limites d'une valeur de couleur dans une image. Si la valeur est définie sur false, renvoie les limites dans lesquelles cette couleur n'existe pas dans une image.

Valeur renvoyée
Rectangle — Zone de l'image correspondant à la couleur spécifiée.

Exemple

L'exemple suivant crée un objet BitmapData comportant du rouge dans la partie supérieure de ses pixels. Il appelle ensuite la méthode getColorBoundsRect() pour déterminer le rectangle où les pixels sont rouges (0xFF0000), puis à nouveau la même méthode pour déterminer le rectangle où les pixels ne sont pas rouges (en définissant le paramètre findColor sur 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()méthode 
public function getPixel(x:int, y:int):uint

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Renvoie un entier représentant une valeur de pixels RVB à partir d'un objet BitmapData à un point spécifique (x, y). La méthode getPixel() renvoie une valeur de pixels non multipliée. Aucune information alpha n'est renvoyée.

Tous les pixels d'un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d'un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d'être renvoyée en tant que valeur. Au cours d'une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d'image brut.

Paramètres

x:int — Coordonnée x du pixel.
 
y:int — Coordonnée y du pixel.

Valeur renvoyée
uint — Nombre représentant une valeur de pixels RVB. Si les coordonnées (x, y) se trouvent à l'extérieur des limites de l'image, la méthode renvoie 0.

Voir aussi


Exemple

L'exemple suivant crée un objet BitmapData en rouge, puis utilise la méthode getPixel() pour déterminer la valeur de couleur dans le pixel supérieur gauche :
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()méthode 
public function getPixel32(x:int, y:int):uint

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Renvoie une valeur de couleur ARVB qui contient des données de canal alpha, ainsi que les données RVB. Cette méthode est similaire à la méthode getPixel() qui renvoie une couleur RVB sans les données de canal alpha.

Tous les pixels d'un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d'un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d'être renvoyée en tant que valeur. Au cours d'une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d'image brut.

Paramètres

x:int — Coordonnée x du pixel.
 
y:int — Coordonnée y du pixel.

Valeur renvoyée
uint — Nombre représentant une valeur de pixels ARVB. Si les coordonnées (x, y) se trouvent à l'extérieur des limites de l'image, 0 est renvoyé.

Voir aussi


Exemple

L'exemple suivant crée un objet BitmapData de la couleur spécifiée, puis utilise la méthode getPixel32() pour déterminer la valeur de couleur du pixel supérieur gauche. Enfin, elle détermine les valeurs hexadécimales de chaque composant de couleur (alpha, rouge, vert et bleu) :

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()méthode 
public function getPixels(rect:Rectangle):ByteArray

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Génère un tableau d’octets à partir d’une zone rectangulaire de données de pixels. Ecrit un entier non signé (valeur de pixel non multipliée 32 bits) pour chaque pixel dans le tableau d’octets.

Paramètres

rect:Rectangle — Zone rectangulaire de l’objet BitmapData en cours.

Valeur renvoyée
ByteArray — ByteArray représentant les pixels dans le paramètre Rectangle spécifié.

Lance
TypeError — Le paramètre rect est défini sur null.

Voir aussi


Exemple

L'exemple suivant crée un objet BitmapData rempli avec des pixels de bruit aléatoires, puis applique la méthode getPixels() pour remplir un objet ByteArray avec la valeur de pixels pour l'objet 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()méthode 
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Procède à la détection des clics au niveau des pixels entre une image bitmap et un point, un rectangle ou toute autre image bitmap. Aucun étirement, aucune rotation ou autre transformation n'est pris en compte lorsque vous effectuez un test de recherche.

Si une image est opaque, elle est considérée comme étant un rectangle entièrement opaque pour cette méthode. Les deux images doivent être transparentes pour effectuer un test de recherche au niveau des pixels tenant compte de la transparence. Lorsque vous testez deux images transparentes, les paramètres de seuil alpha déterminent les valeurs des canaux alpha, comprises entre 0 et 255, considérées comme étant opaques.

Paramètres

firstPoint:Point — Position du coin supérieur gauche de l’image BitmapData dans un espace de coordonnées arbitraire. Le même espace de coordonnées est utilisé pour définir le paramètre secondBitmapPoint.
 
firstAlphaThreshold:uint — Valeur la plus élevée du canal alpha considéré comme étant opaque pour ce test de recherche.
 
secondObject:Object — Objet Rectangle, Point, Bitmap ou BitmapData.
 
secondBitmapDataPoint:Point (default = null) — Point qui définit l'emplacement d'un pixel dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData.
 
secondAlphaThreshold:uint (default = 1) — Valeur la plus élevée du canal alpha considéré comme étant opaque dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData et que les deux objets BitmapData sont transparents.

Valeur renvoyée
Boolean — Valeur true s’il se produit un clic, false dans le cas contraire.

Lance
ArgumentError — Le paramètre secondObject n'est pas un objet Point, Rectangle, Bitmap ou BitmapData.
 
TypeError — Le paramètre firstPoint est défini sur null.

Exemple

L'exemple suivant crée un objet BitmapData qui n'est opaque que dans une zone rectangulaire (20, 20, 40, 40) et appelle la méthode hitTest() avec un objet Point en tant qu'objet secondObject. Lors du premier appel, l'objet Point définit le coin supérieur gauche de l'objet BitmapData, qui n'est pas opaque, et lors du second appel, l'objet Point définit le centre de l'objet BitmapData, qui est opaque.
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()méthode 
public function lock():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Verrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, ne sont pas mis à jour lorsque celui est modifié. Pour améliorer les performances, utilisez cette méthode en conjonction avec la méthode unlock() avant et après les appels répétés de la méthode setPixel() ou setPixel32().

Voir aussi


Exemple

L'exemple suivant crée un objet BitmapData reposant sur la propriété bitmapData d'un objet Bitmap, picture. Il appelle ensuite la méthode lock() avant d'appeler une fonction personnalisée complexe, complexTransformation(), qui modifie l'objet BitmapData. (L'objet picture et la fonction complexTransformation() ne sont pas définis dans cet exemple.) Même si la fonction complexTransformation() met à jour la propriété bitmapData de l'objet picture, les modifications ne sont reportées que lorsque le code appelle la méthode unlock() sur l'objet bitmapData :
import flash.display.BitmapData;

var bitmapData:BitmapData = picture.bitmapData;
bitmapData.lock();
bitmapData = complexTransformation(bitmapData);
bitmapData.unlock();
picture.bitmapData = bitmapData;
merge()méthode 
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Procède au mélange canal par canal d’une image source vers une image de destination. Pour chaque canal et chaque pixel, une nouvelle valeur est calculée en fonction des valeurs de canal des pixels source et cible. Par exemple, dans le canal rouge, la nouvelle valeur est calculée comme suit (où redSrc est la valeur du canal rouge d'un pixel dans l'image source et redDest la valeur du canal rouge du pixel correspondant dans l'image cible) :

new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;

Les multiplicateurs redMultiplier, greenMultiplier, blueMultiplier et alphaMultiplier sont utilisés pour chaque canal de couleur. Servez-vous d'une valeur hexadécimale comprise entre 0 et 0x100 (256), où 0 spécifie que la valeur entière de la cible est utilisée dans le résultat, 0x100 spécifie que la valeur entière de la source est utilisée, et les nombres intermédiaires spécifient l'utilisation de la fusion (par exemple 0x80 pour 50 %).

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un objet BitmapData différent ou peut faire référence à l'objet BitmapData actuel.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de l'image de destination (l'occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source.
 
redMultiplier:uint — Valeur uint hexadécimale par laquelle la valeur du canal rouge doit être multipliée.
 
greenMultiplier:uint — Valeur uint hexadécimale par laquelle la valeur du canal vert doit être multipliée.
 
blueMultiplier:uint — Valeur uint hexadécimale par laquelle la valeur du canal bleu doit être multipliée.
 
alphaMultiplier:uint — Valeur uint hexadécimale par laquelle la valeur du canal alpha doit être multipliée.


Lance
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.

Exemple

L'exemple suivant crée deux objets BitmapData. Tous deux font 100 x 80 pixels. Le premier est rempli en vert et le deuxième en rouge. Le code appelle la méthode merge(), fusionne les pixels du deuxième objet BitmapData avec ceux du premier, mais uniquement dans la zone rectangulaire spécifiée :

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()méthode 
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Remplit une image avec des pixels représentant un bruit aléatoire.

Paramètres

randomSeed:int — Nombre de la valeur de départ aléatoire à utiliser. Si vous conservez tous les autres paramètres, vous pouvez générer différents résultats pseudo-aléatoires en variant la valeur de départ aléatoire. La fonction de bruit est une fonction de mappage et non une véritable fonction de génération de nombres aléatoires. Elle permet donc de créer systématiquement les mêmes résultats à partir d’une même valeur de départ aléatoire.
 
low:uint (default = 0) — Valeur la plus faible à générer pour chaque canal (de 0 à 255).
 
high:uint (default = 255) — Valeur la plus élevée à générer pour chaque canal (de 0 à 255).
 
channelOptions:uint (default = 7) — Nombre pouvant être une combinaison des quatre valeurs de canaux de couleur (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN et BitmapDataChannel.ALPHA). Vous pouvez utiliser l'opérateur logique OR (|) pour combiner les valeurs de canaux.
 
grayScale:Boolean (default = false) — Valeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant tous les canaux de couleur sur la même valeur. La sélection du canal alpha n'est pas affectée en définissant ce paramètre sur true.

Voir aussi


Exemple

L'exemple suivant crée deux objets BitmapData et appelle la méthode noise() sur les deux. Cependant, le paramètre grayscale est défini sur false pour l'appel à la méthode noise() du premier objet, et est défini sur true pour l'appel à la méthode noise() du deuxième objet :

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()méthode 
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Remappe les valeurs des canaux de couleur dans une image recevant jusqu’à quatre tableaux de données de palette de couleurs, un pour chaque canal.

Flash Player utilise la procédure suivante pour générer l'image résultante :

  1. Une fois le calcul des valeurs rouge, vert, bleu et alpha effectué, celles-ci sont additionnées en effectuant une opération arithmétique standard s'articulant autour d'un entier 32 bits.
  2. Les valeurs de couleur rouge, vert, bleu et alpha de chaque pixel sont extraites dans des valeurs distinctes comprises entre 0 et 255. Ces valeurs permettent de rechercher de nouvelles valeurs de couleur dans le tableau voulu : redArray, greenArray, blueArray et alphaArray. Chacun de ces quatre tableaux doit contenir 256 valeurs.
  3. Une fois les quatre nouvelles valeurs de canaux récupérées, elles sont combinées dans une valeur ARVB standard appliquée au pixel.

Les effets multicanaux sont pris en charge par cette méthode. Chaque tableau d'entrée peut contenir des valeurs entières 32 bits ; aucun décalage ne se produit lorsque les valeurs sont additionnées. Cette routine ne prend pas en charge le verrouillage canal par canal.

Si aucun tableau n'est spécifié pour un canal, le canal de couleur est copié de l'image source vers l'image de destination.

Vous pouvez utiliser cette méthode pour de nombreux effets, tel que le mappage de palette général (qui consiste à sélectionner un canal pour le convertir en image couleur de valeur false). Vous pouvez également utiliser cette méthode pour de nombreux algorithmes de manipulation de couleurs avancés, tels que gamma, courbes, niveaux et quantification.

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un autre objet BitmapData ou faire référence à l'occurrence de BitmapData actuelle.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de l'image de destination (l'objet BitmapData actuel) correspondant au coin supérieur gauche du rectangle source.
 
redArray:Array (default = null) — Si redArray n'a pas la valeur null, red = redArray[source red value] else red = source rect value.
 
greenArray:Array (default = null) — Si greenArray n'a pas la valeur null, green = greenArray[source green value] else green = source green value..
 
blueArray:Array (default = null) — Si blueArray n'a pas la valeur null, blue = blueArray[source blue value] else blue = source blue value.
 
alphaArray:Array (default = null) — Si alphaArray n'a pas la valeur null, alpha = alphaArray[source alpha value] else alpha = source alpha value.


Lance
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.

Exemple

L'exemple suivant crée un objet BitmapData avec un carré central rouge, puis utilise la méthode paletteMap() pour remplacer le rouge par du vert dans la moitié rectangulaire du bas de l'objet 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()méthode 
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

Version du lecteur : Flash Player 9

Génère une image de bruit Perlin.

L'algorithme permettant de générer un bruit Perlin interpole et combine des fonctions de bruit aléatoire individuelles (appelées octaves) en fonction unique qui génère un bruit aléatoire qui semble plus naturel. Tout comme les octaves musicales, la fréquence de chaque fonction d'octave est doublée par rapport à celle qui la précède. Le bruit Perlin est décrit comme étant une « somme de bruit fractale » car il combine plusieurs ensembles de données de bruit avec différents niveaux de détails.

Vous pouvez utiliser les fonctions de bruit Perlin pour simuler des phénomènes naturels et des paysages tels que le grain du bois, les nuages ou les chaînes de montagnes. Dans la plupart des cas, la sortie d'une fonction de bruit Perlin ne s'affiche pas directement mais est utilisée pour améliorer d'autres images et leur attribuer des variations pseudo-aléatoires.

Les fonctions de bruit aléatoire numériques simples produisent souvent des images aux points durs et contrastés. On ne retrouve pas souvent ce type de contraste dur dans la nature. L'algorithme de bruit Perlin mélange plusieurs fonctions de bruit ayant des niveaux de détails différents. Cet algorithme engendre des variations plus petites parmi les valeurs des pixels environnants.

Remarque : on doit l'algorithme de bruit Perlin à Ken Perlin, qui a été le premier à le mettre au point après avoir créé des images graphiques sur ordinateur pour le film Tron sorti en 1982. Perlin a reçu un Oscar pour avoir mis au point la fonction de bruit Perlin en 1997.

Paramètres

baseX:Number — Fréquence à utiliser dans la direction x. Par exemple, pour générer un bruit adapté à une image de 64x128 pixels, réglez la valeur baseX sur 64.
 
baseY:Number — Fréquence à utiliser dans la direction y. Par exemple, pour générer un bruit adapté à une image de 64x128 pixels, réglez la valeur baseY sur 128.
 
numOctaves:uint — Nombre d'octaves ou de fonctions de bruit individuelles à combiner pour créer ce bruit. Plus les nombres d'octaves sont élevés, plus les images créées sont détaillées. Les nombres d'octaves plus élevés nécessitent également un temps de traitement plus important.
 
randomSeed:int — Nombre de la valeur de départ aléatoire à utiliser. Si vous conservez tous les autres paramètres, vous pouvez générer différents résultats pseudo-aléatoires en variant la valeur de départ aléatoire. La fonction de bruit Perlin est une fonction de mappage, plutôt qu’une véritable fonction de génération de nombres aléatoires. Elle permet donc de créer systématiquement les mêmes résultats à partir d’une même valeur de départ aléatoire.
 
stitch:Boolean — Valeur booléenne. Si la valeur est true, la méthode tente de lisser les bords de transition de l'image pour créer des textures transparentes en vue du remplissage en mosaïque bitmap.
 
fractalNoise:Boolean — Valeur booléenne. Si la valeur est true, la méthode génère un bruit fractal ; sinon, elle génère une turbulence. Les dégradés d'une image créée à partir d'une turbulence présentent des discontinuités visibles qui lui permettent de mieux appréhender les effets visuels plus saillants, comme les flammes ou les vagues de l'océan.
 
channelOptions:uint (default = 7) — Nombre pouvant être une combinaison des quatre valeurs de canaux de couleur (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN et BitmapDataChannel.ALPHA). Vous pouvez utiliser l'opérateur logique OR (|) pour combiner les valeurs de canaux.
 
grayScale:Boolean (default = false) — Valeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant les canaux de couleur rouge, vert et bleu sur des valeurs identiques. La valeur du canal alpha n'est pas affectée si cette valeur est définie sur true.
 
offsets:Array (default = null) — Tableau de points correspondant aux décalages x et y pour chaque octave. En manipulant les valeurs de décalage, vous pouvez effectuer un défilement lisse d'une image perlinNoise. Chaque point du tableau de décalage affecte une fonction de bruit d'octave spécifique.


Exemple

L'exemple suivant crée un objet BitmapData de 200x200 pixels qui appelle la méthode perlinNoise() pour générer un effet d'aquarelle rouge et bleu :

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()méthode 
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Procède à la dissolution de pixels, soit d’une image source vers une image de destination, soit en utilisant la même image. Flash Player utilise une valeur randomSeed pour générer une dissolution de pixels aléatoire. La valeur renvoyée par la fonction doit être transmise lors des appels suivants pour poursuivre la dissolution de pixels jusqu'à ce qu'elle soit terminée.

Si l'image source diffère de l'image de destination, les pixels sont copiés de la source vers la destination à l'aide de toutes les propriétés. Ce processus permet de procéder à la dissolution d'une image vide dans une image entièrement remplie.

Si les images source et de destination sont équivalentes, les pixels sont remplis avec le paramètre color. Ce processus permet de procéder à la dissolution d'une image entièrement remplie. Dans ce mode, le paramètre point de destination est ignoré.

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un autre objet BitmapData ou faire référence à l'occurrence de BitmapData actuelle.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de l'image de destination (l'occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source.
 
randomSeed:int (default = 0) — Valeur de départ aléatoire à utiliser pour démarrer la dissolution de pixels.
 
numPixels:int (default = 0) — La valeur par défaut est égale à 1/30 de la zone source (largeur x hauteur).
 
fillColor:uint (default = 0) — Valeur de couleur ARVB utilisée pour remplir les pixels dont la valeur source est égale à la valeur de destination.

Valeur renvoyée
int — Nouvelle valeur de départ aléatoire à utiliser pour les appels suivants.

Lance
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.
 
TypeError — La valeur numPixels est négative.

Exemple

L'exemple suivant utilise la méthode pixelDissolve() pour convertir un objet BitmapData gris en rouge en procédant à la dissolution de 40 pixels à la fois jusqu'à ce que tous les pixels aient changé de couleur :
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()méthode 
public function scroll(x:int, y:int):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Fait défiler une image en fonction d’un certain montant en pixels (x, y). Les zones du bord situées hors de la zone de défilement demeurent inchangées.

Paramètres

x:int — Valeur du défilement horizontal.
 
y:int — Valeur du défilement vertical.


Exemple

L'exemple suivant affiche l'effet du défilement d'un objet de données Bitmap de 40 pixels vers la droite :

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()méthode 
public function setPixel(x:int, y:int, color:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Définit un pixel unique d’un objet BitmapData. La valeur de canal alpha actuelle du pixel de l'image est préservée au cours de cette opération. La valeur du paramètre de couleur RVB est traitée en tant que valeur de couleur non multipliée.

Remarque :lorsque vous utilisez à plusieurs reprises la méthode setPixel() ou setPixel32(), appelez la méthode lock() avant setPixel() ou setPixel32(), puis appelez la méthode unlock() une fois tous les pixels modifiés. Vous optimiserez ainsi les performances. Ce processus empêche la mise à jour des objets qui référencent cette occurrence de BitmapData tant que les modifications de pixels ne sont pas terminées.

Paramètres

x:int — Coordonnée x du pixel dont la valeur change.
 
y:int — Coordonnée y du pixel dont la valeur change.
 
color:uint — Couleur RVB résultante du pixel.

Voir aussi


Exemple

L'exemple suivant utilise la méthode setPixel() pour tracer une ligne rouge autour de l'objet 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()méthode 
public function setPixel32(x:int, y:int, color:uint):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Définit les valeurs de couleur et transparence alpha d'un pixel unique d’un objet BitmapData. Cette méthode est similaire à la méthode setPixel() ; la principale différence réside dans le fait que la méthode setPixel32() adopte une valeur de couleur ARVB contenant les informations de canal alpha.

Tous les pixels d'un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d'un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d'être renvoyée en tant que valeur. Au cours d'une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d'image brut.

Remarque :lorsque vous utilisez à plusieurs reprises la méthode setPixel() ou setPixel32(), appelez la méthode lock() avant setPixel() ou setPixel32(), puis appelez la méthode unlock() une fois tous les pixels modifiés. Vous optimiserez ainsi les performances. Ce processus empêche la mise à jour des objets qui référencent cette occurrence de BitmapData tant que les modifications de pixels ne sont pas terminées.

Paramètres

x:int — Coordonnée x du pixel dont la valeur change.
 
y:int — Coordonnée y du pixel dont la valeur change.
 
color:uint — Couleur ARVB résultante du pixel. Si le·bitmap est opaque (non transparente), la partie de transparence alpha de cette valeur de couleur est ignorée.

Voir aussi


Exemple

L'exemple suivant utilise la méthode setPixel32() pour tracer une ligne rouge (alpha == 0x60) autour de l'objet 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()méthode 
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Convertit un tableau d’octets en une zone rectangulaire de données de pixels. La méthode ByteArray.readUnsignedInt() est appelée pour chaque pixel et la valeur renvoyée est écrite dans ce dernier. Si le tableau d’octets prend fin avant l'écriture du rectangle complet, la fonction renvoie une valeur. Le système s’attend à ce que les données du tableau d’octets soient des valeurs de pixel ARVB 32 bits. Aucune recherche n’est effectuée dans le tableau d’octets avant ou après la lecture des pixels.

Paramètres

rect:Rectangle — Spécifie la zone rectangulaire de l’objet BitmapData.
 
inputByteArray:ByteArray — Objet ByteArray composé de valeurs de pixel non multipliées 32 bits à utiliser dans la zone rectangulaire.


Lance
EOFError — L’objet inputByteArray ne comprend pas suffisamment de données pour remplir la zone du rectangle rect. La méthode remplit autant de pixels que possible avant de renvoyer l’exception.
 
TypeError — Les paramètres rect ou inputByteArray sont réglés sur une valeur null.

Voir aussi


Exemple

L'exemple suivant a recours aux méthodes getPixels() et setPixels() pour copier des pixels d'un objet BitmapData à l'autre :

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()méthode 
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Teste les valeurs de pixels d'une image selon un seuil spécifié et définit les pixels qui réussissent le test sur de nouvelles valeurs de couleur. L'utilisation de la méthode threshold() permet d'isoler et de remplacer les gammes de couleurs d'une image et d'effectuer d'autres opérations logiques sur les pixels de l'image.

La logique du test de la méthode threshold() est définie comme suit :

  1. Si ((pixelValue & mask) operation (threshold & mask)), définissez le pixel sur color.
  2. Dans le cas contraire, si copySource == true, réglez le pixel sur la valeur de pixel correspondante dans sourceBitmap.

Le paramètre operation spécifie l'opérateur de comparaison à utiliser pour le test de seuil. Par exemple, si vous utilisez « == » en tant que paramètre operation, vous pouvez isoler une valeur de couleur spécifique dans une image. Ou si vous utilisez {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}, vous pouvez définir tous les pixels de destination comme étant entièrement transparents lorsque la valeur alpha du pixel de l'image source est inférieure à 0x7F. Vous pouvez utiliser cette technique pour les transitions animées et d’autres effets.

Paramètres

sourceBitmapData:BitmapData — L’image bitmap d'entrée à utiliser. L'image source peut être un autre objet BitmapData ou faire référence à l'occurrence de BitmapData actuelle.
 
sourceRect:Rectangle — Rectangle qui définit la zone de l'image source à utiliser en tant qu'entrée.
 
destPoint:Point — Point de l'image de destination (l'occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source.
 
operation:String — L'un des opérateurs de comparaison suivants, transmis en tant que chaîne : "<", "<=", ">", ">=", "==", "!="
 
threshold:uint — Valeur par rapport à laquelle chaque pixel est testé afin de déterminer s'il est inférieur ou égal au seuil ou s'il le dépasse.
 
color:uint (default = 0) — Valeur de couleur sur laquelle un pixel est réglé si le test de seuil aboutit. La valeur par défaut est 0x00000000.
 
mask:uint (default = 0xFFFFFFFF) — Masque à utiliser pour isoler un composant de couleur.
 
copySource:Boolean (default = false) — Si la valeur est true, les valeurs de pixels de l'image source sont copiées vers la destination lorsque le test de seuil échoue. Si la valeur est false, l'image source n'est pas copiée lorsque le test de seuil échoue.

Valeur renvoyée
uint — Nombre de pixels modifiés.

Lance
TypeError — Les paramètres sourceBitmapData, sourceRect, destPoint ou operation sont définis sur null.
 
ArgumentError — L’opération de chaîne n’est pas une opération valide.

Exemple

L'exemple suivant exploite la méthode perlinNoise() pour ajouter un motif bleu et rouge à un objet BitmapData, puis applique la méthode threshold() pour copier ces pixels du premier objet BitmapData vers un deuxième, en remplaçant les pixels dont la valeur de rouge est supérieure à 0x80 (50 %) par des pixels en rouge transparent (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()méthode 
public function unlock(changeRect:Rectangle = null):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Déverrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, sont mis à jour lorsque celui est modifié. Pour améliorer les performances, utilisez cette méthode en conjonction avec la méthode lock() avant et après les appels répétés de la méthode setPixel() ou setPixel32().

Paramètres

changeRect:Rectangle (default = null) — La zone de l’objet BitmapData qui a été modifiée. Si vous ne spécifiez pas de valeur pour ce paramètre, la zone entière de l’objet BitmapData est considérée comme modifiée.

Voir aussi


Exemple

L'exemple suivant crée un objet BitmapData reposant sur la propriété bitmapData d'un objet Bitmap, picture. Il appelle ensuite la méthode lock() avant d'appeler une fonction personnalisée complexe, complexTransformation(), qui modifie l'objet BitmapData. (L'objet picture et la fonction complexTransformation() ne sont pas définis dans cet exemple.) Même si la fonction complexTransformation() met à jour la propriété bitmapData de l'objet picture, les modifications ne sont reportées que lorsque le code appelle la méthode unlock() sur l'objet bitmapData :
import flash.display.BitmapData;

var bitmapData:BitmapData = picture.bitmapData;
bitmapData.lock();
bitmapData = complexTransformation(bitmapData);
bitmapData.unlock();
picture.bitmapData = bitmapData;
Exemples Utilisation des exemples
BitmapDataExample.as

L'exemple suivant utilise la classe BitmapDataExample pour charger le fichier Image.gif dans DisplayObject à l'emplacement par défaut (0, 0). Une copie d'Image.gif est ensuite placée à droite de l'original, qui applique de nouvelles couleurs aux pixels qui répondent aux critères définis par la méthode threshold(). La tâche s'accomplit de la façon suivante :
  1. Une propriété url est créée pour désigner l'emplacement et le nom du fichier d'image.
  2. Le constructeur de classe crée un objet Loader, qui crée à son tour un écouteur d'événements, qui est transmis lorsque la méthode completeHandler() termine la manipulation de l'image.
  3. Le paramètre request de l'objet URLRequest est ensuite transmise à loader.load(), qui charge l'image en mémoire à l'aide d'un objet d'affichage.
  4. L'image est ensuite placée dans la liste d'affichage, qui affiche l'image aux coordonnées x = 0, y = 0.
  5. La méthode completeHandler() effectue ensuite les opérations suivantes :
    • Crée un deuxième objet Loader, ainsi qu'un objet Bitmap, qui est initialisé avec l'objet Loader.
    • Crée un deuxième objet Bitmap, duplicate, qui appelle en retour la méthode duplicateImage(), qui crée elle-même un double de l'image d'origine.
    • Crée un objet BitmapData qui est associé à l'objet BitmapData de l'objet duplicate.
    • Crée un objet Rectangle qui est initialisé avec les mêmes coordonnées, la même largeur et hauteur, que l'image d'origine.
    • Crée un objet Point, qui emploie par défaut les coordonnées x = 0, y = 0.
    • Crée les variables suivantes :
      • operation — Applique la nouvelle couleur lorsque la valeur de seuil est supérieure ou égale à l'original.
      • threshold — La valeur de chaque pixel est comparée (dans cet exemple, gris clair avec une valeur alpha de 0xCC).
      • color — La couleur des pixels qui répondent aux critères imposés, soit jaune uni dans ce cas.
      • mask — Le contraire exact de la couleur (bleu transparent).
      • copySource — Défini sur false, indique que les valeurs des pixels ne sont pas copiées si les critères de la valeur de seuil ne sont pas réunis. Cette valeur n'a aucune signification, car l'image est dupliquée et seuls les pixels qui répondent aux critères de seuil sont modifiés.
    • Appelle la méthode threshold() à l'aide des variables précédentes. L'équation de seuil qui en résulte figure ci-dessous : if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Remarques :


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);
        }
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/display/BitmapData.html