Package | flash.display |
Classe | public class BitmapData |
Héritage | BitmapData Object |
Implémente | IBitmapDrawable |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 image 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 de l’image 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 :
-
BitmapDataChannel.ALPHA
-
BitmapDataChannel.RED
-
BitmapDataChannel.GREEN
-
BitmapDataChannel.BLUE
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()
.
Dans le moteur d’exécution AIR, les classes DockIcon, Icon, InteractiveIcon et SystemTrayIcon comprennent chacune une propriété bitmaps
qui est un tableau d’objets BitmapData qui définissent les images bitmap pour une icône.
Dans AIR 1.5 et Flash Player 10, la taille maximale d’un objet BitmapData est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’un objet BitmapData est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large.
Dans AIR 3 et Flash Player 11 et les versions ultérieures, les limites de taille pour un objet BitmapData ont été supprimées. La taille maximale d’un bitmap dépend désormais du système d’exploitation.
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().
Plus d’exemples
Copie de données bitmap
Compression des données d’une image bitmap
Création de textures avec les fonctions de bruit aléatoire
Défilement du contenu d’images bitmap
Exemple d’objet Bitmap : lune en rotation animée
Informations complémentaires
Principes de base de l’utilisation des images bitmap
Classes Bitmap et BitmapData
Utilisation du mipmapping
Décodage asynchrone des images bitmap
Eléments de l’API associés
flash.desktop.DockIcon.bitmaps
flash.display.Graphics.beginBitmapFill()
flash.desktop.Icon.bitmaps
flash.desktop.InteractiveIcon.bitmaps
flash.display.Loader
flash.desktop.SystemTrayIcon.bitmaps
Propriété | Défini par | ||
---|---|---|---|
constructor : 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 | ||
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éthode | Défini par | ||
---|---|---|---|
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 de l’image bitmap contenue. | BitmapData | ||
Définit les valeurs de couleur dans une zone spécifiée d’une image bitmap avec un objet ColorTransform. | BitmapData | ||
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 | ||
Remplit un tableau d’octets à partir d’une zone rectangulaire de données de pixels. | BitmapData | ||
Libère la mémoire utilisée pour stocker l’objet BitmapData. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom: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 du moteur d’exécution de Flash. | BitmapData | ||
drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Dessine l’objet d’affichage source sur l’image bitmap avec la fonctionnalité de rendu vectoriel du moteur d’exécution de Flash. | BitmapData | ||
Compresse l’objet BitmapData à l’aide de l’algorithme de compression sélectionné et renvoie un nouvel objet ByteArray. | BitmapData | ||
Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée. | BitmapData | ||
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 | ||
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 | ||
Génère un tableau de vecteurs à partir d’une zone rectangulaire de données de pixels. | BitmapData | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Calcule l’histogramme binaire à 256 valeurs d’un objet BitmapData. | BitmapData | ||
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 | ||
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-ci est modifié. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Procède à la fusion 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 | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Fait défiler une image en fonction d’un certain montant en pixels (x, y). | BitmapData | ||
Définit un pixel unique d’un objet BitmapData. | BitmapData | ||
Définit les valeurs de couleur et transparence alpha d’un pixel unique d’un objet BitmapData. | BitmapData | ||
Convertit un tableau d’octets en une zone rectangulaire de données de pixels. | BitmapData | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Convertit un objet Vector en une zone rectangulaire de données de pixels. | BitmapData | ||
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 | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
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 | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
height | propriété |
rect | propriété |
rect:Rectangle
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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
transparent | propriété |
transparent:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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
width | propriété |
BitmapData | () | Constructeur |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 de l’image bitmap est défini sur cette couleur.
Par défaut, l’image bitmap créée est transparente, sauf si vous transmettez la valeur false
au paramètre transparent
. Une fois l’image bitmap opaque créée, vous ne pouvez pas la transformer en bitmap transparente. Chaque pixel d’une image bitmap opaque utilise uniquement 24 bits d’informations du canal de couleur. Si vous réglez l’image bitmap sur transparent, chaque pixel utilise 32 bits d’informations de canal de couleur, y compris un canal de transparence alpha.
Dans AIR 1.5 et Flash Player 10, la taille maximale d’un objet BitmapData est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’un objet BitmapData est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Si vous spécifiez une valeur de largeur ou de hauteur supérieure à 2880, la nouvelle occurrence n’est pas créée.
Paramètreswidth: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 image 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).
|
Valeur émise
ArgumentError — La largeur et/ou la hauteur dépassent les dimensions maximales.
|
applyFilter | () | méthode |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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, l’application 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 :
|
Valeur émise
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.
|
Plus d’exemples
Eléments de l’API associés
flash.filters.BlurFilter
flash.filters.ColorMatrixFilter
flash.filters.ConvolutionFilter
flash.filters.DisplacementMapFilter
flash.filters.DropShadowFilter
flash.filters.GlowFilter
flash.display.DisplayObject.filters
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Renvoie un nouvel objet BitmapData, clone de l’occurrence d’origine avec une copie exacte de l’image bitmap contenue.
Valeur renvoyéeBitmapData — Nouvel objet BitmapData identique à l’original.
|
Exemple ( Comment utiliser cet exemple )
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:flash.geom:ColorTransform):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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:flash.geom:ColorTransform — Objet ColorTransform décrivant les valeurs de transformation de couleur à appliquer.
|
Valeur émise
TypeError — Le paramètre rect ou colorTransform est défini sur null.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 :
- Si deux pixels sont équivalents, le pixel de différence est 0x00000000.
- Si deux pixels ont des valeurs RVB différentes (en dehors de la valeur alpha), le pixel de différence est 0xRRGGBB où RR/GG/BB sont les valeurs de différences individuelles entre les canaux rouge, vert et bleu (la valeur du pixel dans l’objet source moins la valeur du pixel dans l’objet
otherBitmapData
). Les différences relatives au canal alpha ne sont pas prises en compte dans ce cas. - Si seule la valeur du canal alpha diffère, la valeur du pixel est 0xZZFFFFFF, où ZZ est la différence entre les valeurs alpha (la valeur alpha dans l’objet source moins la valeur alpha dans l’objet
otherBitmapData
).
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 (0xFF0000 et 0xFFAA00). 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.
|
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.
|
Valeur émise
TypeError — Le paramètre otherBitmapData est défini sur null.
|
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 :
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
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 l’image 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 ).
|
Valeur émise
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 .
|
Valeur émise
TypeError — Les paramètres sourceBitmapData, sourceRect et destPoint sont définis sur null.
|
Exemple ( Comment utiliser cet exemple )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
copyPixelsToByteArray | () | méthode |
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Remplit un tableau d’octets à partir d’une zone rectangulaire de données de pixels. En commençant par l’index position
de l’objet ByteArray, cette méthode écrit un entier non signé (valeur de pixel non multipliée de 32 bits) pour chaque pixel dans le tableau d’octets. Si besoin est, la taille du tableau d’octets est augmentée du nombre d’octets nécessaire pour pouvoir contenir toutes les données de pixel.
Paramètres
rect:Rectangle — Zone rectangulaire de l’objet BitmapData en cours
| |
data:ByteArray — objet ByteArray de destination
|
Valeur émise
TypeError — si l’argument rect est null ou l’argument data est null
|
Eléments de l’API associés
dispose | () | méthode |
public function dispose():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
BitmapData.dispose()
libère immédiatement la mémoire occupée par les données bitmap actuelles (une image bitmap peut consommer jusqu’à 64 Mo de mémoire). Après avoir utilisé BitmapData.dispose()
, l’objet BitmapData n’est plus utilisable et le moteur d’exécution de Flash renvoie une exception si vous appelez des fonctions sur l’objet BitmapData. Toutefois, BitmapData.dispose()
ne nettoie pas l’objet BitmapData (environ 128 octets) ; la mémoire occupée par l’objet BitmapData actuel est libérée lorsque le nettoyeur de mémoire collecte l’objet BitmapData.
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Dessine l’objet d’affichage source
sur l’image bitmap avec la fonctionnalité de rendu vectoriel du moteur d’exécution de Flash. 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 l’image bitmap doit être lissée lorsqu’elle est redimensionnée (cette opération ne fonctionne que si l’objet source est un objet BitmapData).
Remarque : la méthode drawWithQuality()
fonctionne exactement comme la méthode draw()
, mais au lieu d’utiliser la propriété Stage.quality
pour déterminer la qualité de rendu vectoriel, vous spécifiez le paramètre quality
sur la méthode drawWithQuality()
.
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 création.
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.
Cette méthode est prise en charge sur RTMP dans Flash Player 9.0.115.0 et versions ultérieures, et dans Adobe AIR. 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, voir les propriétés Client.audioSampleAccess
et Client.videoSampleAccess
dans le Guide de référence du langage ActionScript d’Adobe Flash Media Server côté serveur.
Si l’objet source et (dans le cas d’un objet Sprite ou MovieClip) tous les objets enfant correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain()
, un appel à la méthode draw()
renvoie une exception SecurityError. Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application.
Il existe également des restrictions concernant l’utilisation d’une image bitmap chargée en tant que source
. Un appel de la méthode draw()
aboutit si l’image chargée provient du même domaine que l’appelant. Par ailleurs, un fichier de régulation interdomaine sur le serveur de l’image peut autoriser le domaine du contenu SWF qui appelle la méthode draw()
. Le cas échéant, vous devez définir la propriété checkPolicyFile
d’un objet LoaderContext, puis utiliser cet objet en tant que paramètre context
lors de l’appel de la méthode load()
de l’objet Loader utilisée pour charger l’image. Le contenu AIR du sandbox de sécurité de l’application n’est pas soumis à ces restrictions.
Dans Windows, la méthode draw()
ne peut pas capturer le contenu SWF incorporé dans une page HTML dans un objet HTMLLoader dans Adobe AIR.
La méthode draw()
ne peut pas capturer un contenu PDF dans Adobe AIR. Elle ne peut pas non plus capturer un contenu SWF intégré dans HTML dont l’attribut wmode
est défini sur "window"
dans Adobe AIR.
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 de l’image 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:flash.geom: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’une image bitmap avec le paramètre |
Valeur émise
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 enfant correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain() . Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application.
| |
ArgumentError — La source est réglée sur null ou n’est pas un objet IBitmapDrawable valide.
|
Eléments de l’API associés
flash.display.Stage.quality
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Exemple ( Comment utiliser cet exemple )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
drawWithQuality | () | méthode |
public function drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.3, AIR 3.3 |
Dessine l’objet d’affichage source
sur l’image bitmap avec la fonctionnalité de rendu vectoriel du moteur d’exécution de Flash. 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 l’image bitmap doit être lissée lorsqu’elle est redimensionnée (cette opération ne fonctionne que si l’objet source est un objet BitmapData).
Remarque : la méthode drawWithQuality()
fonctionne exactement comme la méthode draw()
, mais au lieu d’utiliser la propriété Stage.quality
pour déterminer la qualité de rendu vectoriel, vous spécifiez le paramètre quality
sur la méthode drawWithQuality()
.
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 création.
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.
Cette méthode est prise en charge sur RTMP dans Flash Player 9.0.115.0 et versions ultérieures, et dans Adobe AIR. Vous pouvez contrôler l’accès aux flux sur un serveur FMS (Flash Media Server) dans un script coté serveur. Pour plus d’informations, voir les propriétés Client.audioSampleAccess
et Client.videoSampleAccess
dans le Guide de référence du langage ActionScript d’Adobe Flash Media Server côté serveur.
Si 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 contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain()
, un appel à la méthode drawWithQuality()
renvoie une exception SecurityError. Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application.
Il existe également des restrictions concernant l’utilisation d’une image bitmap chargée en tant que source
. Un appel de la méthode drawWithQuality()
aboutit si l’image chargée provient du même domaine que l’appelant. Par ailleurs, un fichier de régulation interdomaine sur le serveur de l’image peut autoriser le domaine du contenu SWF qui appelle la méthode drawWithQuality()
. Le cas échéant, vous devez définir la propriété checkPolicyFile
d’un objet LoaderContext, puis utiliser cet objet en tant que paramètre context
lors de l’appel de la méthode load()
de l’objet Loader utilisée pour charger l’image. Le contenu AIR du sandbox de sécurité de l’application n’est pas soumis à ces restrictions.
Dans Windows, la méthode drawWithQuality()
ne peut pas capturer le contenu SWF incorporé dans une page HTML dans un objet HTMLLoader dans Adobe AIR.
La méthode drawWithQuality()
ne peut pas capturer un contenu PDF dans Adobe AIR. Elle ne peut pas non plus capturer un contenu SWF intégré dans HTML dont l’attribut wmode
est défini sur "window"
dans Adobe AIR.
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 de l’image 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:flash.geom: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’une image bitmap avec le paramètre | |
quality:String (default = null ) — L’une des valeurs de StageQuality. Sélectionne la qualité d’anticrénelage à utiliser lors de la création de graphiques vectoriels.
|
Valeur émise
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 enfant correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain() . Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application.
| |
ArgumentError — La source est réglée sur null ou n’est pas un objet IBitmapDrawable valide.
|
Eléments de l’API associés
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Exemple ( Comment utiliser cet exemple )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.drawWithQuality(tf, , , , , , StageQuality.LOW); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
encode | () | méthode |
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.3, AIR 3.3 |
Compresse l’objet BitmapData à l’aide de l’algorithme de compression sélectionné et renvoie un nouvel objet ByteArray. Ecrit les données résultantes dans l’objet ByteArray spécifié (facultatif). L’argument compressor
spécifie l’algorithme de codage, qui peut être PNGEncoderOptions, JPEGEncoderOptions ou JPEGXREncoderOptions.
L’exemple suivant compresse un objet BitmapData à l’aide de JPEGEncoderOptions :
// Compress a BitmapData object as a JPEG file. var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00); var byteArray:ByteArray = new ByteArray(); bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray);
Paramètres
rect:Rectangle — Zone de l’objet BitmapData à compresser.
| |
compressor:Object — Type de compresseur à utiliser. Les valeurs valides sont les suivantes : flash.display.PNGEncoderOptions , flash.display.JPEGEncoderOptions et flash.display.JPEGXREncoderOptions .
| |
byteArray:ByteArray (default = null ) — Objet ByteArray de sortie destiné à contenir l’image codée.
|
ByteArray — Un objet ByteArray contenant l’image codée.
|
Eléments de l’API associés
fillRect | () | méthode |
public function fillRect(rect:Rectangle, color:uint):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
Valeur émise
TypeError — Le paramètre rect est défini sur null.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 ( Comment utiliser cet exemple )
(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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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.
|
Rectangle — Rectangle de destination dont les dimensions ont été calculées à l’aide d’une image, du paramètre sourceRect et d’un filtre.
|
Valeur émise
TypeError — Le paramètre sourceRect ou filter est défini sur une valeur null.
|
Exemple ( Comment utiliser cet exemple )
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);
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
Rectangle — Zone de l’image correspondant à la couleur spécifiée.
|
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
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.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32 | () | méthode |
public function getPixel32(x:int, y:int):uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
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é.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixels | () | méthode |
public function getPixels(rect:Rectangle):ByteArray
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Génère un tableau d’octets à partir d’une zone rectangulaire de données de pixels. Écrit 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.
|
ByteArray — ByteArray représentant les pixels dans le paramètre Rectangle spécifié.
|
Valeur émise
TypeError — Le paramètre rect est défini sur null.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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);
getVector | () | méthode |
public function getVector(rect:Rectangle):Vector.<uint>
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Génère un tableau de vecteurs à partir d’une zone rectangulaire de données de pixels. Renvoie un objet Vector d’entiers non signés (une valeur de pixel non multipliée de 32 bits) pour le rectangle spécifié.
Paramètres
rect:Rectangle — Zone rectangulaire de l’objet BitmapData en cours.
|
Vector.<uint> — Vecteur représentant le Rectangle donné.
|
Valeur émise
TypeError — Le paramètre rect est défini sur null.
|
histogram | () | méthode |
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Calcule l’histogramme binaire à 256 valeurs d’un objet BitmapData. Cette méthode renvoie un objet Vector contenant quatre occurrences de Vector.<Number> (quatre objets Vector qui contiennent des objets Number). Les quatre occurrences de Vector représentent les composants rouge, vert, bleu et alpha, dans l’ordre. Chaque occurrence de Vector contient 256 valeurs qui représentent le nombre de remplissages d’un composant individuel, de 0 à 255.
Paramètres
hRect:Rectangle (default = null ) — La zone de l’objet BitmapData à utiliser.
|
Vector.<Vector.<Number>> |
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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. Un clic est défini comme le chevauchement d’un point ou d’un rectangle sur un pixel opaque, ou comme deux pixels opaque se chevauchant. 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 — Plus petite valeur 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 ) — Plus petite valeur 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.
|
Boolean — Valeur true s’il se produit un clic, false dans le cas contraire.
|
Valeur émise
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 ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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-ci 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()
.
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Procède à la fusion 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.
|
Valeur émise
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.
|
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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 .
|
Eléments de l’API associés
flash.display.BitmapDataChannel.BLUE
flash.display.BitmapDataChannel.GREEN
flash.display.BitmapDataChannel.ALPHA
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
Les moteurs d’exécution de Flash utilisent la procédure suivante pour générer l’image résultante :
- 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.
- 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
etalphaArray
. Chacun de ces quatre tableaux doit contenir 256 valeurs. - 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 .
|
Valeur émise
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.
|
Exemple ( Comment utiliser cet exemple )
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 langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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.
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 ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
Procède à la dissolution de pixels, soit d’une image source vers une image de destination, soit en utilisant la même image. Les moteurs d’exécution de Flash utilisent 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.
|
int — Nouvelle valeur de départ aléatoire à utiliser pour les appels suivants.
|
Valeur émise
TypeError — Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null.
| |
TypeError — La valeur numPixels est négative.
|
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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 ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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 l’image bitmap est opaque (non transparente), la partie de transparence alpha de cette valeur de couleur est ignorée.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0, Flash Lite 4 |
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.
|
Valeur émise
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.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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;
setVector | () | méthode |
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Convertit un objet Vector en une zone rectangulaire de données de pixels. Pour chaque pixel, un élément Vector est lu et écrit dans le pixel BitmapData. Le système s’attend à ce que les données de l’objet Vector soient des valeurs de pixel ARVB 32 bits.
Paramètres
rect:Rectangle — Spécifie la zone rectangulaire de l’objet BitmapData.
| |
inputVector:Vector.<uint> — Objet Vector composé de valeurs de pixel non multipliées 32 bits à utiliser dans la zone rectangulaire.
|
Valeur émise
RangeError — Le tableau de vecteurs n’est pas assez grand pour lire toutes les données de pixels.
|
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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 :
- Si
((pixelValue & mask) operation (threshold & mask))
, définissez le pixel surcolor
. - Dans le cas contraire, si
copySource == true
, réglez le pixel sur la valeur de pixel correspondante danssourceBitmap
.
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.
|
uint — Nombre de pixels modifiés.
|
Valeur émise
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 ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.0 |
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. Ce paramètre requiert Flash Player version 9.0.115.0 ou ultérieure.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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;
threshold()
. La tâche s’accomplit de la façon suivante :
- Une propriété
url
est créée pour désigner l’emplacement et le nom du fichier d’image. - 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. - 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. - L’image est ensuite placée dans la liste d’affichage, qui affiche l’image aux coordonnées x = 0, y = 0.
- 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éthodeduplicateImage()
, 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 surfalse
, 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 :
- Vous devrez compiler le fichier SWF en définissant Sécurité de lecture locale sur Accès aux fichiers locaux uniquement.
- Pour exécuter cet exemple, il est nécessaire de placer un fichier intitulé Image.txt dans le même répertoire que votre fichier SWF.
- Il est recommandé d’utiliser une image qui ne dépasse pas 80 pixels de largeur.
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); } } }
Tue Jun 12 2018, 09:30 AM Z