Paquete | flash.display |
Clase | public class BitmapData |
Herencia | BitmapData Object |
Implementa | IBitmapDrawable |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
flash.display.Loader
.
Esta clase permite separar operaciones de representación de mapa de bits de la rutinas internas de actualización de la visualización de Flash Player. Con la manipulación directa de un objeto BitmapData es posible crear imágenes complejas sin recargar cada fotograma al redibujar constantemente el contenido de datos vectoriales.
Los métodos de la clase BitmapData admiten efectos que no están disponibles a través de los filtros disponibles para los objetos de visualización que no sean mapas de bits.
Un objeto BitmapData contiene un conjunto de datos de píxeles. Estos datos pueden representar un mapa de bits completamente opaco o un mapa de bits transparente que contiene datos del canal alfa. Ambos tipos de objetos BitmapData se almacenan como búfer de enteros de 32 bits. Cada entero de 32 bits determina las propiedades de un píxel único del mapa de bits.
Cada entero de 32 bits es una combinación de cuatro valores de canal de 8 bits (de cero a 255) que describen los valores de transparencia alfa, y rojo, verde y azul (ARGB) del píxel. (En el caso de valores ARGB, el byte más significativo representa el valor del canal alfa, seguido del rojo, el verde y el azul.)
Los cuatro canales (alfa, rojo, verde y azul) se representan como números cuando se utilizan con el método BitmapData.copyChannel()
o las propiedades DisplacementMapFilter.componentX
y DisplacementMapFilter.componentY
, y estos números se representan mediante las siguientes constantes en la clase BitmapDataChannel:
-
BitmapDataChannel.ALPHA
-
BitmapDataChannel.RED
-
BitmapDataChannel.GREEN
-
BitmapDataChannel.BLUE
Puede asociar objetos BitmapData a un objeto Bitmap empleando la propiedad bitmapData
del objeto Bitmap.
Se puede utilizar un objeto BitmapData para rellenar un objeto Graphics mediante el método Graphics.beginBitmapFill()
.
En el motor de ejecución de AIR, las clases DockIcon, Icon, InteractiveIcon y SystemTrayIcon incluyen una propiedad bitmaps
que es un conjunto de objetos BitmapData que define las imágenes de mapa de bits de los iconos.
En AIR 1.5 y en Flash Player 10, el tamaño máximo de un objeto BitmapData es 8.191 píxeles de anchura o de altura; el número total de píxeles no puede superar los 16.777.215. (De modo que, si un objeto BitmapData tiene 8.191 píxeles de anchura, tendrá como mucho 2.048 píxeles de altura.) En Flash Player 9 y versiones anteriores, y en AIR 1.1 y versiones anteriores, la limitación es de 2.880 píxeles de altura y 2.880 de anchura.
Desde AIR 3 y Flash Player 11, ya no hay límite de tamaño para un objeto BitmapData. El tamaño máximo de un mapa de bits ahora depende del sistema operativo.
Las llamadas a cualquier método o propiedad de un objeto BitmapData emiten un error ArgumentError si el objeto BitmapData no es válido (por ejemplo, si tiene height == 0
y width == 0
) o se ha eliminado mediante dispose().
Elementos de API relacionados
flash.desktop.DockIcon.bitmaps
flash.display.Graphics.beginBitmapFill()
flash.desktop.Icon.bitmaps
flash.desktop.InteractiveIcon.bitmaps
flash.display.Loader
flash.desktop.SystemTrayIcon.bitmaps
Propiedad | Definido por | ||
---|---|---|---|
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
height : int [solo lectura]
Altura de la imagen de mapa de bits, expresada en píxeles. | BitmapData | ||
rect : Rectangle [solo lectura]
Rectángulo que define el tamaño y la ubicación de la imagen de mapa de bits. | BitmapData | ||
transparent : Boolean [solo lectura]
Define si la imagen de mapa de bits admite transparencia por píxel. | BitmapData | ||
width : int [solo lectura]
Anchura de la imagen de mapa de bits, expresada en píxeles. | BitmapData |
Método | Definido por | ||
---|---|---|---|
Crea un nuevo objeto BitmapData con una determinada anchura y altura. | BitmapData | ||
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Toma una imagen de origen y un objeto de filtro y genera la imagen filtrada. | BitmapData | ||
Devuelve un objeto BitmapData nuevo que es un clon de la instancia original con una copia exacta del mapa de bits contenido. | BitmapData | ||
Ajusta los valores de color en una determinada área de una imagen de mapa de bits mediante un objeto ColorTransform. | BitmapData | ||
Compara dos objetos BitmapData. | BitmapData | ||
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Transfiere datos de un canal de otro objeto BitmapData o del objeto BitmapData actual a un canal del objeto BitmapData actual. | BitmapData | ||
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Proporciona una rutina rápida para la manipulación de píxeles entre imágenes sin efectos de color, rotación ni expansión. | BitmapData | ||
Rellena un conjunto de bytes de una zona rectangular de datos de píxeles. | BitmapData | ||
Libera memoria que se utiliza para almacenar el objeto BitmapData. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Dibuja el objeto de visualización source en la imagen de mapa de bits empleando el procesador de vectores del motor de ejecución 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
Dibuja el objeto de visualización source en la imagen de mapa de bits empleando el procesador de vectores del motor de ejecución de Flash. | BitmapData | ||
Comprime este objeto BitmapData con el algoritmo compresor seleccionado y devuelve un nuevo objeto ByteArray. | BitmapData | ||
Rellena un área rectangular de píxeles con un determinado color ARGB. | BitmapData | ||
Realiza una operación de relleno en una imagen empezando por una coordenada (x, y) y rellenando con un determinado color. | BitmapData | ||
Determina el rectángulo de destino al que afecta la llamada al método applyFilter(), dados un objeto BitmapData, un rectángulo de origen y un objeto de filtro. | BitmapData | ||
Determina una zona rectangular que encierra totalmente todos los píxeles de un color determinado dentro de la imagen de mapa de bits (si el parámetro findColor se establece como true) o encierra totalmente todos los píxeles que no incluyen el color especificado (si el parámetro findColor se establece como false). | BitmapData | ||
Devuelve un entero que representa un valor de píxel RGB de un objeto BitmapData en un punto específico (x, y). | BitmapData | ||
Devuelve un valor de color ARGB que contiene datos del canal alfa y datos de RGB. | BitmapData | ||
Genera un conjunto de bytes de una zona rectangular de datos de píxeles. | BitmapData | ||
Genera un conjunto de vectores de una zona rectangular de datos de píxeles. | BitmapData | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Calcula el histograma de números binarios de 256 de un objeto BitmapData. | BitmapData | ||
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Detecta la zona activa a nivel de píxeles entre una imagen de mapa de bits y un punto, un rectángulo u otra imagen de mapa de bits. | BitmapData | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Bloquea una imagen de manera que los objetos que hacen referencia al objeto BitmapData como, por ejemplo, los objetos Bitmap, no se actualicen cuando cambia este objeto BitmapData. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Realiza una mezcla por canal de una imagen de origen a una imagen de destino. | BitmapData | ||
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Rellena una imagen con píxeles que representan ruido aleatorio. | BitmapData | ||
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Reasigna los valores del canal de color en una imagen proporcionada a cuatro conjuntos de datos de la paleta de colores, una por cada 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
Genera una imagen de ruido Perlin. | BitmapData | ||
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Realiza una disolución de píxeles de una imagen de origen a una imagen de destino o utilizando la misma imagen. | BitmapData | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Desplaza una imagen una determinada cantidad de píxeles (x, y). | BitmapData | ||
Establece un solo píxel de un objeto BitmapData. | BitmapData | ||
Establece los valores de color y transparencia alfa de un solo píxel de un objeto BitmapData. | BitmapData | ||
Convierte un conjunto de bytes en una zona rectangular de datos de píxeles. | BitmapData | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Convierte un vector en una zona rectangular de datos de píxeles. | BitmapData | ||
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Prueba valores de píxel en una imagen con un umbral especificado y define los píxeles que se pasan para probar los valores del nuevo color. | BitmapData | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Desbloquea una imagen de manera que los objetos que hacen referencia al objeto BitmapData como, por ejemplo, los objetos Bitmap, se actualicen cuando cambia este objeto BitmapData. | BitmapData | ||
Devuelve el valor simple del objeto especificado. | Object |
height | propiedad |
rect | propiedad |
rect:Rectangle
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Rectángulo que define el tamaño y la ubicación de la imagen de mapa de bits. Las partes superior e izquierda del rectángulo son 0; el ancho y el alto son iguales a la anchura y a la altura en píxeles del objeto BitmapData.
Implementación
public function get rect():Rectangle
transparent | propiedad |
transparent:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Define si la imagen de mapa de bits admite transparencia por píxel. Solamente puede definir este valor cuando cree un objeto BitmapData pasando true
para el parámetro transparent
del constructor. Posteriormente, tras crear un objeto BitmapData, puede comprobar si admite transparencia por píxel determinando si el valor de la propiedad transparent
es true
.
Implementación
public function get transparent():Boolean
width | propiedad |
BitmapData | () | Información sobre |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Crea un nuevo objeto BitmapData con una determinada anchura y altura. Si especifica un valor para el parámetro fillColor
, todos los píxeles del mapa de bits utilizan ese color.
De forma predeterminada, el mapa de bits se crea como transparente, a menos que pase el valor false
para el parámetro transparent
. Una vez que se ha creado un mapa de bits opaco, no se puede cambiar a uno transparente. Todos los píxeles de un mapa de bits opaco utilizan 24 bits de información del canal de color. Si define el mapa de bits como transparente, todos los píxeles utilizan 32 bits de información del canal de color, incluido un canal de transparencia alfa.
En AIR 1.5 y en Flash Player 10, el tamaño máximo de un objeto BitmapData es 8.191 píxeles de anchura o de altura; el número total de píxeles no puede superar los 16.777.215. (De modo que, si un objeto BitmapData tiene 8.191 píxeles de anchura, tendrá como mucho 2.048 píxeles de altura.) En Flash Player 9 y versiones anteriores y en AIR 1.1 y versiones anteriores, el límite es 2.880 píxeles de alto y 2.880 píxeles de ancho. Si especifica un valor de anchura o altura mayor que 2.880, no se creará una instancia nueva.
Parámetroswidth:int — Anchura de la imagen de mapa de bits, expresada en píxeles.
| |
height:int — Altura de la imagen de mapa de bits, expresada en píxeles.
| |
transparent:Boolean (default = true ) — Especifica si la imagen de mapa de bits admite transparencia por píxel. El valor predeterminado es true (transparente). Para crear un mapa de bits totalmente transparente, defina el valor del parámetro transparent como true y el valor del parámetro fillColor con 0x00000000 (o a 0). La configuración de la propiedad transparent como false puede dar como resultado pequeñas mejoras en el rendimiento de la visualización.
| |
fillColor:uint (default = 0xFFFFFFFF ) — Valor de color ARGB de 32 bits que se utiliza para rellenar el área de la imagen de mapa de bits. El valor predeterminado es 0xFFFFFFFF (blanco sólido).
|
Emite
ArgumentError — La anchura y/o la altura superan las dimensiones máximas.
|
applyFilter | () | método |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Toma una imagen de origen y un objeto de filtro y genera la imagen filtrada.
Este método se basa en el comportamiento de los objetos de filtro incorporados, que determinan el rectángulo de destino que se ve afectado por un rectángulo de origen de entrada.
Después de aplicar un filtro, la imagen resultante puede ser mayor que la imagen de entrada. Por ejemplo, si se utiliza una clase BlurFilter para desenfocar un rectángulo de origen de (50,50,100,100) y un punto de destino de (10,10), el área que cambia en la imagen de destino será mayor que (10,10,60,60) debido al desenfoque. Esto sucede internamente durante la llamada a applyFilter()
.
Si el parámetro sourceRect
del parámetro sourceBitmapData
es una región interior, como (50,50,100,100) en una imagen de 200 x 200, el filtro utilizará los píxeles de origen fuera del parámetro sourceRect
para generar el rectángulo de destino.
Si el objeto BitmapData y el objeto especificado como parámetro sourceBitmapData
son el mismo objeto, la aplicación utiliza una copia temporal del objeto para ejecutar el filtro. Para lograr el máximo rendimiento, evite esta situación.
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia a la instancia de BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de la imagen de destino (la instancia de BitmapData actual) que corresponde a la esquina superior izquierda del rectángulo de origen.
| |
filter:BitmapFilter — El objeto de filtro que se utilizará para realizar la operación de filtrado. Cada tipo de filtro tiene determinados requisitos, a saber:
|
Emite
TypeError — sourceBitmapData, sourceRect, destPoint o el filtro tienen el valor null.
| |
IllegalOperationError — La transparencia de los objetos BitmapData no es compatible con la operación de filtro.
|
Elementos de API relacionados
flash.filters.BlurFilter
flash.filters.ColorMatrixFilter
flash.filters.ConvolutionFilter
flash.filters.DisplacementMapFilter
flash.filters.DropShadowFilter
flash.filters.GlowFilter
flash.display.DisplayObject.filters
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function clone():BitmapData
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Devuelve un objeto BitmapData nuevo que es un clon de la instancia original con una copia exacta del mapa de bits contenido.
Valor devueltoBitmapData — Un objeto BitmapData nuevo que es idéntico al original.
|
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Ajusta los valores de color en una determinada área de una imagen de mapa de bits mediante un objeto ColorTransform
. Si el rectángulo coincide con los límites de la imagen de mapa de bits, este método transformará los valores de color de toda la imagen.
Parámetros
rect:Rectangle — Un objeto Rectangle que define el área de la imagen en la que se aplica el objeto ColorTransform.
| |
colorTransform:flash.geom:ColorTransform — Un objeto ColorTransform que describe los valores de transformación de color que se van a aplicar.
|
Emite
TypeError — rect o colorTransform tienen el valor null.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function compare(otherBitmapData:BitmapData):Object
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Compara dos objetos BitmapData. Si los dos objetos BitmapData tienen las mismas dimensiones (anchura y altura), el método devolverá un nuevo objeto BitmapData, en el que cada píxel es la "diferencia" entre los píxeles de los dos objetos de origen:
- Si dos píxeles son iguales, el píxel de diferencia será 0x00000000.
- Si dos píxeles tiene diferentes valores RGB (omitiendo el valor alfa), el píxel de diferencia es 0xRRGGBB, donde RR/GG/BB son los valores de diferencia individuales entre los canales rojo, verde y azul (el valor de píxel en el objeto de origen menos el valor de píxel en el objeto
otherBitmapData
). Las diferencias del canal alfa se omiten en este caso. - Si sólo es diferente el valor del canal alfa, el valor de píxel será 0xZZFFFFFF, donde ZZ es la diferencia en los valores alfa (el valor alfa del objeto de origen menos el valor alfa del objeto
otherBitmapData
).
Por ejemplo, veamos los dos objetos BitmapData siguientes:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Nota: los colores utilizados para rellenar los dos objetos BitmapData tienen valores RGB ligeramente diferentes (0xFF0000 y 0xFFAA00). El resultado del método compare()
es un nuevo objeto BitmapData en el que cada píxel muestra la diferencia de los valores RGB entre los dos mapas de bits.
Piense en los dos objetos BitmapData siguientes en los que los colores RGB son iguales pero los valores alfa son diferentes:
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
El resultado del método compare()
es un nuevo objeto BitmapData en el que cada píxel muestra la diferencia de los valores alfa entre los dos mapas de bits.
Si los objetos BitmapData son equivalentes (con la misma anchura y altura e idénticos valores de píxeles), el método devolverá el número 0.
Si la anchura de los objetos BitmapData no es la misma, el método devolverá el número -3.
Si la altura de los objetos BitmapData no es la misma pero la anchura sí, el método devolverá el número -4.
En el ejemplo siguiente, se comparan dos objetos Bitmap con anchuras diferentes (50 y 60):
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Parámetros
otherBitmapData:BitmapData — El objeto BitmapData que se va a comparar con el objeto BitmapData de origen.
|
Object — Si los dos objetos BitmapData tienen las mismas dimensiones (anchura y altura), el método devolverá un nuevo objeto BitmapData con la diferencia entre los dos (consulte la descripción principal). Si los objetos BitmapData son equivalentes, el método devolverá el número 0. Si la anchura de los objetos BitmapData no es la misma, el método devolverá el número -3. Si la altura de los objetos BitmapData no es la misma, el método devolverá el número -4.
|
Emite
TypeError — otherBitmapData tiene el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Transfiere datos de un canal de otro objeto BitmapData o del objeto BitmapData actual a un canal del objeto BitmapData actual. Se mantendrán todos los datos de los demás canales del objeto BitmapData de destino.
Los valores del canal de origen y del canal de destino pueden ser los siguientes:
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia al objeto BitmapData actual.
| |
sourceRect:Rectangle — El objeto Rectangle de origen. Especifique un rectángulo de origen con un tamaño menor que el tamaño global del objeto BitmapData si sólo desea copiar los datos del canal de un área menor del mapa de bits.
| |
destPoint:Point — El objeto Point de destino que representa la esquina superior izquierda del área rectangular donde se situarán los nuevos datos del canal. Especifique un punto distinto de (0,0) si sólo desea copiar los datos del canal de un área a otra de la imagen de destino.
| |
sourceChannel:uint — El canal de origen. Utilice un valor de la clase BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
| |
destChannel:uint — El canal de destino. Utilice un valor de la clase BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
|
Emite
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Proporciona una rutina rápida para la manipulación de píxeles entre imágenes sin efectos de color, rotación ni expansión. Este método copia un área rectangular de una imagen de origen en un área rectangular del mismo tamaño en el punto de destino del objeto BitmapData de destino.
Si incluye los parámetros alphaBitmap
y alphaPoint
, puede utilizar una imagen secundaria como origen de alfa para la imagen de origen. Si la imagen de origen tiene datos alfa, se utilizarán los dos conjuntos de datos alfa para componer píxeles de la imagen de origen en la imagen de destino. El parámetro alphaPoint
es el punto de la imagen alfa que corresponde a la esquina superior izquierda del rectángulo de origen. Los píxeles que queden fuera de la intersección de la imagen de origen y la imagen alfa no se copiarán en la imagen de destino.
La propiedad mergeAlpha
controla si se utiliza el canal alfa cuando se copia una imagen transparente sobre otra imagen transparente. Para copiar píxeles con los datos del canal alfa, defina la propiedad mergeAlpha
como true
. De forma predeterminada, la propiedad mergeAlpha
es false
.
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada desde la que se van a copiar píxeles. La imagen de origen puede ser otra instancia de BitmapData o puede hacer referencia a la instancia de BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de destino que representa la esquina superior izquierda del área rectangular donde se sitúan los nuevos píxeles.
| |
alphaBitmapData:BitmapData (default = null ) — Un origen secundario del objeto BitmapData de alfa.
| |
alphaPoint:Point (default = null ) — El punto del origen del objeto BitmapData de alfa que corresponde a la esquina superior izquierda del parámetro sourceRect .
| |
mergeAlpha:Boolean (default = false ) — Para utilizar el canal alfa, defina el valor como true . Para copiar píxeles sin el canal alfa, defina el valor como false .
|
Emite
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11.4, AIR 3.4 |
Rellena un conjunto de bytes de una zona rectangular de datos de píxeles. Desde el índice position
de ByteArray, este método escribe un entero sin signo (un valor de píxel de 32 bits sin multiplicar) por cada píxel en el conjunto de bytes. Si es necesario, el tamaño del conjunto de bytes aumenta hasta el número necesario de bytes para poder contener todos los datos de píxeles.
Parámetros
rect:Rectangle — Área rectangular del objeto BitmapData actual
| |
data:ByteArray — El objeto ByteArray de origen
|
Emite
TypeError — Si el argumento rect es null o el argumento data es null
|
Elementos de API relacionados
dispose | () | método |
public function dispose():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Libera memoria que se utiliza para almacenar el objeto BitmapData.
Cuando se llama al método dispose()
para una imagen, la anchura y la altura de la imagen se establecen en 0. Todas las llamadas posteriores a los métodos o propiedades de esta instancia de BitmapData fallarán y se emitirá una excepción.
BitmapData.dispose()
libera inmediatamente la memoria ocupada por los datos reales de mapa de bits (un mapa de bits puede consumir hasta 64 MB de memoria). Después de utilizar BitmapData.dispose()
, el objeto BitmapData ya no se puede utilizar y el motor de ejecución de Flash emite una excepción si se llama a las funciones en el objeto BitmapData. Sin embargo, BitmapData.dispose()
no recopila datos innecesarios del objeto BitmapData (aproximadamente 128 bytes); la memoria ocupada por el objeto BitmapData real se libera en el momento en que se recopilan los datos innecesarios del objeto BitmapData.
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
dispose()
(se emite una excepción):
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étodo |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Dibuja el objeto de visualización source
en la imagen de mapa de bits empleando el procesador de vectores del motor de ejecución de Flash. Puede especificar matrix
, colorTransform
, blendMode
y un parámetro clipRect
de destino para controlar cómo se realiza la representación. También puede especificar si el mapa de bits se debe suavizar cuando se escala (esto sólo funciona si el objeto de origen es un objeto BitmapData).
Nota: El método drawWithQuality()
funciona exactamente igual que el método draw()
, pero en vez de utilizar la propiedad Stage.quality
para determinar la calidad de procesamiento del vector, especifica el parámetro quality
para el método drawWithQuality()
.
Este método corresponde directamente a cómo se dibujan los objetos con el procesador de vectores estándar para objetos en la interfaz de la herramienta de edición.
El objeto de visualización de origen no utiliza ninguna de sus transformaciones aplicadas para esta llamada. Se trata tal como se encuentra en la biblioteca o el archivo, sin transformación de matriz, transformación de color ni modo de mezcla. Para dibujar un objeto de visualización (como, por ejemplo, un clip de película) empleando sus propias propiedades de transformación, puede copiar su objeto de propiedad transform
en la propiedad transform
del objeto Bitmap que utiliza el objeto BitmapData.
Este método se admite en RTMP en Flash Player 9.0.115.0 y versiones posteriores, y en Adobe AIR. Puede controlar el acceso a transmisiones en Flash Media Server en un script del lado del servidor. Para obtener más información, consulte las propiedades Client.audioSampleAccess
y Client.videoSampleAccess
en Referencia del lenguaje ActionScript del servidor para Adobe Flash Media Server.
Si el objeto source y (en el caso de un objeto Sprite o MovieClip) todos sus objetos secundarios no proceden del mismo dominio que el origen de la llamada y no están en contenido de SWF que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain()
, una llamada al método draw()
emite una excepción SecurityReport. Esta restricción no está presente en el contenido de AIR en el entorno limitado de seguridad de la aplicación.
También hay restricciones sobre el uso de una imagen de mapa de bits como source
. Una llamada al método draw()
es correcta si la imagen cargada proviene del mismo dominio que el elemento que la llama. Asimismo, un archivo de política entre dominios en el servidor de la imagen puede otorgar permisos al dominio del contenido SWF si llama al método draw()
. En este caso, debe establecer la propiedad checkPolicyFile
de un objeto LoaderContext y utilizarlo como el parámetro context
cuando se llama al método load()
del objeto Loader empleado para cargar la imagen. Estas restricciones no se aplican al contenido de AIR en el entorno limitado de seguridad de la aplicación.
En Windows, el método draw()
no puede capturar contenido de SWF incorporado en una página HTML de un objeto HTMLLoader en Adobe AIR.
El método draw()
no puede capturar contenido PDF en Adobe AIR. Tampoco puede capturar o incorporar contenido SWF en HTML donde el atributo wmode
está establecido como "window"
en Adobe AIR.
Parámetros
source:IBitmapDrawable — El objeto de visualización u objeto BitmapData que debe dibujarse en el objeto BitmapData. (Las clases DisplayObject y BitmapData implementan la interfaz IBitmapDrawable.)
| |
matrix:Matrix (default = null ) — Un objeto Matrix empleado para escalar, rotar o convertir las coordenadas del mapa de bits. Si no desea aplicar una transformación de matriz a la imagen, establezca este parámetro con una matriz de identidad, creada con el constructor new Matrix() predeterminado o pase el valor null .
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Un objeto ColorTransform empleado para ajustar los valores de color del mapa de bits. Si no se proporciona ningún objeto, no se transformarán los colores de la imagen de mapa de bits. Si tiene que pasar este parámetro pero no desea transformar la imagen, defina el parámetro con un objeto ColorTransform creado mediante el constructor new ColorTransform() predeterminado.
| |
blendMode:String (default = null ) — Un valor de cadena, de la clase flash.display.BlendMode, que especifica el modo de mezcla que debe aplicarse al mapa de bits resultante.
| |
clipRect:Rectangle (default = null ) — Un objeto Rectangle que define el área del objeto de origen que se va a dibujar. Si no proporciona este valor, no se producirá recorte y se dibujará el objeto de origen completo.
| |
smoothing:Boolean (default = false ) — Un valor booleano que determina si se suavizará un objeto BitmapData cuando se escale o gire, debido a un ajuste de escala o rotación en el parámetro matrix . El parámetro smoothing sólo se aplica si el parámetro source es un objeto BitmapData. Si smoothing se establece como false , la imagen BitmapData girada o escalada puede tener un aspecto pixelado o dentado. Por ejemplo, las dos imágenes siguientes utilizan el mismo objeto BitmapData para el parámetro source , pero el parámetro smoothing se establece como true a la izquierda y como false a la derecha:
Dibujar un mapa de bits con |
Emite
ArgumentError — El parámetro source no es un objeto BitmapData o DisplayObject.
| |
SecurityError — El objeto source y (en el caso de un objeto Sprite o MovieClip) todos sus objetos secundarios no proceden del mismo dominio que el origen de la llamada y no están en contenido de SWF que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain() . Esta restricción no está presente en el contenido de AIR en el entorno limitado de seguridad de la aplicación.
| |
ArgumentError — El origen tiene el valor null o no es un objeto IBitmapDrawable válido.
|
Elementos de API relacionados
flash.display.Stage.quality
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11.3, AIR 3.3 |
Dibuja el objeto de visualización source
en la imagen de mapa de bits empleando el procesador de vectores del motor de ejecución de Flash. Puede especificar matrix
, colorTransform
, blendMode
y un parámetro clipRect
de destino para controlar cómo se realiza la representación. También puede especificar si el mapa de bits se debe suavizar cuando se escala (esto sólo funciona si el objeto de origen es un objeto BitmapData).
Nota: El método drawWithQuality()
funciona exactamente igual que el método draw()
, pero en vez de utilizar la propiedad Stage.quality
para determinar la calidad de procesamiento del vector, especifica el parámetro quality
para el método drawWithQuality()
.
Este método corresponde directamente a cómo se dibujan los objetos con el procesador de vectores estándar para objetos en la interfaz de la herramienta de edición.
El objeto de visualización de origen no utiliza ninguna de sus transformaciones aplicadas para esta llamada. Se trata tal como se encuentra en la biblioteca o el archivo, sin transformación de matriz, transformación de color ni modo de mezcla. Para dibujar un objeto de visualización (como, por ejemplo, un clip de película) empleando sus propias propiedades de transformación, puede copiar su objeto de propiedad transform
en la propiedad transform
del objeto Bitmap que utiliza el objeto BitmapData.
Este método se admite en RTMP en Flash Player 9.0.115.0 y versiones posteriores, y en Adobe AIR. Puede controlar el acceso a transmisiones en Flash Media Server en un script del lado del servidor. Para obtener más información, consulte las propiedades Client.audioSampleAccess
y Client.videoSampleAccess
en la referencia del lenguaje ActionScript del servidor para Adobe Flash Media Server.
Si el objeto source y (en el caso de un objeto Sprite o MovieClip) todos sus objetos secundarios no proceden del mismo dominio que el origen de la llamada y no están en contenido que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain()
, una llamada al método drawWithQuality()
emite una excepción SecurityReport. Esta restricción no está presente en el contenido de AIR en el entorno limitado de seguridad de la aplicación.
También hay restricciones sobre el uso de una imagen de mapa de bits como source
. Una llamada al método drawWithQuality()
es correcta si la imagen cargada proviene del mismo dominio que el elemento que la llama. Asimismo, un archivo de política entre dominios en el servidor de la imagen puede otorgar permisos al dominio del contenido SWF si llama al método drawWithQuality()
. En este caso, debe establecer la propiedad checkPolicyFile
de un objeto LoaderContext y utilizarlo como el parámetro context
cuando se llama al método load()
del objeto Loader empleado para cargar la imagen. Estas restricciones no se aplican al contenido de AIR en el entorno limitado de seguridad de la aplicación.
En Windows, el método drawWithQuality()
no puede capturar contenido de SWF incorporado en una página HTML de un objeto HTMLLoader en Adobe AIR.
El método drawWithQuality()
no puede capturar contenido PDF en Adobe AIR. Tampoco puede capturar o incorporar contenido SWF en HTML donde el atributo wmode
está establecido como "window"
en Adobe AIR.
Parámetros
source:IBitmapDrawable — El objeto de visualización u objeto BitmapData que debe dibujarse en el objeto BitmapData. (Las clases DisplayObject y BitmapData implementan la interfaz IBitmapDrawable.)
| |
matrix:Matrix (default = null ) — Un objeto Matrix empleado para escalar, rotar o convertir las coordenadas del mapa de bits. Si no desea aplicar una transformación de matriz a la imagen, establezca este parámetro con una matriz de identidad, creada con el constructor new Matrix() predeterminado o pase el valor null .
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Un objeto ColorTransform empleado para ajustar los valores de color del mapa de bits. Si no se proporciona ningún objeto, no se transformarán los colores de la imagen de mapa de bits. Si tiene que pasar este parámetro pero no desea transformar la imagen, defina el parámetro con un objeto ColorTransform creado mediante el constructor new ColorTransform() predeterminado.
| |
blendMode:String (default = null ) — Un valor de cadena, de la clase flash.display.BlendMode, que especifica el modo de mezcla que debe aplicarse al mapa de bits resultante.
| |
clipRect:Rectangle (default = null ) — Un objeto Rectangle que define el área del objeto de origen que se va a dibujar. Si no proporciona este valor, no se producirá recorte y se dibujará el objeto de origen completo.
| |
smoothing:Boolean (default = false ) — Un valor booleano que determina si se suavizará un objeto BitmapData cuando se escale o gire, debido a un ajuste de escala o rotación en el parámetro matrix . El parámetro smoothing sólo se aplica si el parámetro source es un objeto BitmapData. Si smoothing se establece como false , la imagen BitmapData girada o escalada puede tener un aspecto pixelado o dentado. Por ejemplo, las dos imágenes siguientes utilizan el mismo objeto BitmapData para el parámetro source , pero el parámetro smoothing se establece como true a la izquierda y como false a la derecha:
Dibujar un mapa de bits con | |
quality:String (default = null ) — Cualquiera de los valores de StageQuality. Selecciona la calidad de suavizado que se utilizará al dibujar gráficos vectoriales.
|
Emite
ArgumentError — El parámetro source no es un objeto BitmapData o DisplayObject.
| |
SecurityError — El objeto source y (en el caso de un objeto Sprite o MovieClip) todos sus objetos secundarios no proceden del mismo dominio que el origen de la llamada y no están en contenido de SWF que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain() . Esta restricción no está presente en el contenido de AIR en el entorno limitado de seguridad de la aplicación.
| |
ArgumentError — El origen tiene el valor null o no es un objeto IBitmapDrawable válido.
|
Elementos de API relacionados
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11.3, AIR 3.3 |
Comprime este objeto BitmapData con el algoritmo compresor seleccionado y devuelve un nuevo objeto ByteArray. Opcionalmente, escribe los datos resultantes en el objeto ByteArray especificado. El argumento compressor
especifica el algoritmo de codificación y puede ser PNGEncoderOptions, JPEGEncoderOptions o JPEGXREncoderOptions.
El siguiente ejemplo se comprime un objeto BitmapData con 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);
Parámetros
rect:Rectangle — El área del objeto BitmapData que se va a comprimir.
| |
compressor:Object — El tipo compresor para utilizar. Los valores válidos son: flash.display.PNGEncoderOptions , flash.display.JPEGEncoderOptions y flash.display.JPEGXREncoderOptions .
| |
byteArray:ByteArray (default = null ) — La salida ByteArray para mantener la imagen codificada.
|
ByteArray — Un objeto ByteArray que contenga la imagen codificada.
|
Elementos de API relacionados
fillRect | () | método |
public function fillRect(rect:Rectangle, color:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Rellena un área rectangular de píxeles con un determinado color ARGB.
Parámetros
rect:Rectangle — El área rectangular que se va a rellenar.
| |
color:uint — El valor de color ARGB que rellena el área. Los colores ARGB se especifican a menudo en formato hexadecimal, como 0xFF336699.
|
Emite
TypeError — rect tiene el valor null.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function floodFill(x:int, y:int, color:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Realiza una operación de relleno en una imagen empezando por una coordenada (x, y) y rellenando con un determinado color. El método floodFill()
es similar a la herramienta cubo de pintura que incorporan muchos programas de dibujo. El color es un color ARGB que contiene información alfa y de color.
Parámetros
x:int — La coordenada x de la imagen.
| |
y:int — La coordenada y de la imagen.
| |
color:uint — El color ARGB que se va a utilizar como relleno.
|
Ejemplo ( Cómo utilizar este ejemplo )
(10, 10)
en el que todos los colores coinciden con el color de ese punto.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
generateFilterRect | () | método |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Determina el rectángulo de destino al que afecta la llamada applyFilter()
, dados un objeto BitmapData, un rectángulo de origen y un objeto de filtro.
Por ejemplo, un filtro de desenfoque suele afectar a un área mayor que la imagen original. Una imagen de 100 x 200 píxeles que se filtra mediante una instancia BlurFilter predeterminada, donde blurX = blurY = 4
, genera un rectángulo de destino de (-2,-2,104,204)
. El método generateFilterRect()
permite conocer el tamaño de este rectángulo de destino de antemano para poder ajustar el tamaño de la imagen de destino convenientemente antes de una operación de filtro.
Algunos filtros recortan su rectángulo de destino de acuerdo con el tamaño de la imagen de origen. Por ejemplo, un DropShadow
interior no genera un resultado mayor que su imagen de origen. En esta API, se utiliza como límite de origen el objeto BitmapData y no el parámetro rect
de origen.
Parámetros
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
filter:BitmapFilter — Objeto de filtro que se va a utilizar para calcular el rectángulo de destino.
|
Rectangle — Rectángulo de destino calculado empleando una imagen, el parámetro sourceRect y un filtro.
|
Emite
TypeError — sourceRect o el filtro tienen el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
generateFilterRect()
para determinar el área rectangular que ocupará el resultado de un filtro de desenfoque. Los resultados del método generateFilterRect()
están producidos por la función 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()
no aplica el filtro. Llame al método applyFilter()
para aplicarlo.
getColorBoundsRect | () | método |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Determina una zona rectangular que encierra totalmente a todos los píxeles de un color determinado dentro de la imagen de mapa de bits (si el parámetro findColor
se establece como true
) o encierra totalmente a todos los píxeles que no incluyen el color especificado (si el parámetro findColor
se ha establecido como false
).
Por ejemplo, si tiene una imagen de origen y desea determinar el rectángulo de la imagen que contiene un canal alfa distinto de cero, pase {mask: 0xFF000000, color: 0x00000000}
como parámetros. Si el parámetro findColor
se define como true
, se buscarán en toda la imagen los límites de píxeles para los que (value & mask) == color
(donde value
es el valor de color del píxel). Si el parámetro findColor
se define como false
, se buscarán en toda la imagen los límites de píxeles para los que (value & mask) != color
(donde value
es el valor de color del píxel). Para determinar el espacio blanco alrededor de una imagen, pase {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}
para buscar los límites de los píxeles no blancos.
Parámetros
mask:uint — Un valor hexadecimal que especifica los bits del color ARGB que deben tenerse en cuenta. El valor de color se combina con este valor hexadecimal empleando el operador & (AND en modo bit).
| |
color:uint — Un valor hexadecimal que especifica el color ARGB con el que debe establecerse correspondencia (si findColor se establece en true ) o con el que no debe establecerse correspondencia (si findColor se establece en false ).
| |
findColor:Boolean (default = true ) — Si el valor se establece como true , devuelve los límites de un valor de color de una imagen. Si es false , devuelve los límites de donde no existe este color en la imagen.
|
Rectangle — La región de la imagen que es del color especificado.
|
Ejemplo ( Cómo utilizar este ejemplo )
getColorBoundsRect()
para determinar el rectángulo en el que los píxeles están en rojo (0xFF0000) y después, llama al mismo método para determinar el rectángulo en el que los píxeles no están en rojo (al establecer el parámetro findColor
como 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étodo |
public function getPixel(x:int, y:int):uint
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Devuelve un entero que representa un valor de píxel RGB de un objeto BitmapData en un punto específico (x, y). El método getPixel()
devuelve un valor de píxel no multiplicado. No se devuelve información de alfa.
Todos los píxeles de un objeto BitmapData se almacenan como valores de color premultiplicados. El píxel de imagen premultiplicado ya tiene los valores de canal de color rojo, verde y azul multiplicados por los datos alfa. Por ejemplo, si el valor alfa es cero, los canales RGB también son cero, independientemente de sus valores no multiplicados. Esta pérdida de datos puede ocasionar algunos problemas cuando se realizan operaciones. Todos los métodos BitmapData toman y devuelven valores no multiplicados. La representación interna de píxeles se convierte de premultiplicada a no multiplicada antes de que se devuelva como valor. Durante una operación dada, el valor de píxel se premultiplica antes de establecer el píxel de imagen en bruto.
Parámetros
x:int — La posición x del píxel.
| |
y:int — La posición y del píxel.
|
uint — Un número que representa un valor de píxel RGB. Si las coordenadas (x, y) se encuentran fuera de los límites de la imagen, el método devuelve 0.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
getPixel()
para determinar el valor de color en el píxel superior izquierdo:
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étodo |
public function getPixel32(x:int, y:int):uint
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Devuelve un valor de color ARGB que contiene datos del canal alfa y datos de RGB. Este método es similar a getPixel()
, que devuelve un color RGB sin datos del canal alfa.
Todos los píxeles de un objeto BitmapData se almacenan como valores de color premultiplicados. El píxel de imagen premultiplicado ya tiene los valores de canal de color rojo, verde y azul multiplicados por los datos alfa. Por ejemplo, si el valor alfa es cero, los canales RGB también son cero, independientemente de sus valores no multiplicados. Esta pérdida de datos puede ocasionar algunos problemas cuando se realizan operaciones. Todos los métodos BitmapData toman y devuelven valores no multiplicados. La representación interna de píxeles se convierte de premultiplicada a no multiplicada antes de que se devuelva como valor. Durante una operación dada, el valor de píxel se premultiplica antes de establecer el píxel de imagen en bruto.
Parámetros
x:int — La posición x del píxel.
| |
y:int — La posición y del píxel.
|
uint — Un número que representa un valor de píxel ARGB. Si las coordenadas (x, y) se encuentran fuera de los límites de la imagen, se devuelve 0.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
getPixel32()
para determinar el valor de color en el píxel superior izquierdo y, a continuación, se determinan los valores hexadecimales para cada componente de color (alfa, rojo, verde y azul):
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étodo |
public function getPixels(rect:Rectangle):ByteArray
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Genera un conjunto de bytes de una zona rectangular de datos de píxeles. Escribe un entero sin signo (un valor de píxeles de 32 bits no multiplicado) para cada píxel del conjunto de bytes.
Parámetros
rect:Rectangle — Un área rectangular del objeto BitmapData actual.
|
ByteArray — Un conjunto ByteArray que representa los píxeles del objeto Rectangle en cuestión.
|
Emite
TypeError — rect tiene el valor null.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
getPixels()
para rellenar un objeto ByteArray de valores de píxel del objeto 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étodo |
public function getVector(rect:Rectangle):Vector.<uint>
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Genera un conjunto de vectores de una zona rectangular de datos de píxeles. Devuelve un objeto Vector de enteros sin signo (valor en píxeles sin multiplicar de 32 bits) para el rectángulo especificado.
Parámetros
rect:Rectangle — Un área rectangular del objeto BitmapData actual.
|
Vector.<uint> — Un objeto Vector que representa el objeto Rectangle determinado.
|
Emite
TypeError — rect tiene el valor null.
|
histogram | () | método |
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Calcula el histograma de números binarios de 256 de un objeto BitmapData. Este método devuelve un objeto Vector con cuatro instancias de Vector.<Number> (cuatro objetos Vector que contienen objetos Number). Las cuatro instancias de Vector representan los componentes rojo, verde, azul y alfa en ese orden. Cada instancia de Vector contiene 256 valores que representan el recuento de relleno de un valor de componente individual, de 0 a 255.
Parámetros
hRect:Rectangle (default = null ) — El área del objeto BitmapData que se va a utilizar.
|
Vector.<Vector.<Number>> |
hitTest | () | método |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Detecta la zona activa a nivel de píxeles entre una imagen de mapa de bits y un punto, un rectángulo u otra imagen de mapa de bits. Una zona activa se define como la superposición de un punto o un rectángulo en un píxel opaco, o la superposición de dos píxeles opacos. Cuando se realiza la prueba de zona activa no se tiene en cuenta expansión, rotación ni ninguna otra transformación de ninguno de los objetos.
Si una imagen es opaca, se considerará un rectángulo totalmente opaco para este método. Las dos imágenes deben ser transparentes para realizar pruebas de zona activa a nivel de píxeles que tengan en cuenta la transparencia. Cuando se comprueban dos imágenes transparentes, los parámetros de umbral alfa controlan qué valores de canal, de 0 a 255, se consideran opacos.
Parámetros
firstPoint:Point — Posición de la esquina superior izquierda de la imagen BitmapData en un espacio de coordenadas arbitrarias. El mismo espacio de coordenadas se utiliza en la definición del parámetro secondBitmapPoint .
| |
firstAlphaThreshold:uint — El valor de canal alfa más bajo que se considera opaco para esta prueba.
| |
secondObject:Object — Un objeto Rectangle, Point, Bitmap o BitmapData.
| |
secondBitmapDataPoint:Point (default = null ) — Un punto que define una ubicación de píxel en el segundo objeto BitmapData. Utilice este parámetro únicamente cuando el valor de secondObject sea un objeto BitmapData.
| |
secondAlphaThreshold:uint (default = 1 ) — El valor de canal alfa más bajo que se considera opaco en el segundo objeto BitmapData. Utilice este parámetro únicamente cuando el valor de secondObject sea un objeto BitmapData, y los dos objetos BitmapData sean transparentes.
|
Boolean — Devuelve el valor true si existe una zona activa; en caso contrario, devuelve false .
|
Emite
ArgumentError — El parámetro secondObject no es un objeto Point, Rectangle, Bitmap o BitmapData.
| |
TypeError — firstPoint tiene el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
hitTest()
con un objeto Point como secondObject
. En la primera llamada, el objeto Point define la esquina superior izquierda del objeto BitmapData, que no es opaca, y en la segunda llamada, define el centro, que es opaco.
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock | () | método |
public function lock():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Bloquea una imagen de manera que los objetos que hacen referencia al objeto BitmapData como, por ejemplo, los objetos Bitmap, no se actualicen cuando cambia este objeto BitmapData. Para mejorar el rendimiento, utilice este método junto con el método unlock()
antes y después de realizar numerosas llamadas al método setPixel()
o setPixel32()
.
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
bitmapData
de un objeto Bitmap, picture
. A continuación, llama al método lock()
antes de llamar a una función personalizada complicada, complexTransformation()
, que modifica el objeto BitmapData. (El objeto picture
y la función complexTransformation()
no se definen en este ejemplo.) Incluso si la función complexTransformation()
actualiza la propiedad bitmapData
del objeto picture
, los cambios no se reflejan hasta que el código llama al método unlock()
en el objeto bitmapData
:
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
merge | () | método |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Realiza una mezcla por canal de una imagen de origen a una imagen de destino. Por cada canal y cada píxel, se calcula un nuevo valor basado en los valores de canal de los píxeles de origen y de destino. Por ejemplo, en el canal rojo, el nuevo valor se calcula de la siguiente forma (donde redSrc
es el valor del canal rojo para el píxel de la imagen de origen y redDest
es el valor del canal rojo en el píxel correspondiente de la imagen de destino):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
El evento redMultiplier
, greenMultiplier
, blueMultiplier
y alphaMultiplier
son los multiplicadores empleados para cada canal de color. Utilice un valor hexadecimal comprendido entre 0
y 0x100
(256) donde 0
especifica que se utiliza en el resultado el valor completo del destino, 0x100
especifica que se utiliza el valor completo del origen, y los números entre estos valores indican que se utiliza una mezcla (como 0x80
para el 50%).
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia al objeto BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de la imagen de destino (la instancia de BitmapData actual) que corresponde a la esquina superior izquierda del rectángulo de origen.
| |
redMultiplier:uint — Valor uint hexadecimal por el que se multiplica el valor del canal rojo.
| |
greenMultiplier:uint — Valor uint hexadecimal por el que se multiplica el valor del canal verde.
| |
blueMultiplier:uint — Valor uint hexadecimal por el que se multiplica el valor del canal azul.
| |
alphaMultiplier:uint — Valor uint hexadecimal por el que se multiplica el valor de transparencia alfa.
|
Emite
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
merge()
, fundiendo los píxeles del segundo objeto BitmapData con el primer objeto BitmapData, pero sólo en el área rectangular especificada:
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étodo |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Rellena una imagen con píxeles que representan ruido aleatorio.
Parámetros
randomSeed:int — El número de inicialización aleatorio que se va a utilizar. Si mantiene iguales todos los demás parámetros, podrá generar resultados seudo-aleatorios variando el valor de inicialización aleatorio. La función de ruido es una función de asignación y no una verdadera función de generación de ruido aleatorio, por lo que producirá siempre los mismos resultados con el mismo valor de inicialización aleatorio.
| |
low:uint (default = 0 ) — El valor más bajo que se va a generar para cada canal (de 0 a 255).
| |
high:uint (default = 255 ) — El valor más alto que se va a generar para cada canal (de 0 a 255).
| |
channelOptions:uint (default = 7 ) — Un número que puede ser una combinación de cualquiera de los cuatro valores de canal de color (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN y BitmapDataChannel.ALPHA ). Puede utilizar el operador lógico OR (| ) para combinar valores de canal.
| |
grayScale:Boolean (default = false ) — Valor booleano. Si es true , se creará una imagen en escala de grises estableciendo todos los canales de color con el mismo valor. La selección del canal alfa no se ve afectada por el establecimiento de este parámetro como true .
|
Elementos de API relacionados
flash.display.BitmapDataChannel.BLUE
flash.display.BitmapDataChannel.GREEN
flash.display.BitmapDataChannel.ALPHA
Ejemplo ( Cómo utilizar este ejemplo )
noise()
para ambos. Sin embargo, el parámetro grayscale
se establece como false
en la llamada al método noise()
del primer objeto, y como true
en la llamada al método noise()
del segundo objeto:
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étodo |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Reasigna los valores del canal de color en una imagen proporcionada a cuatro conjuntos de datos de la paleta de colores, una por cada canal.
El motor de ejecución de Flash utiliza los siguientes pasos para generar la imagen resultante:
- Después de calcular los valores rojo, verde, azul y alfa, se suman utilizando aritmética estándar de enteros de 32 bits.
- Los valores del canal rojo, azul, verde y alfa de cada píxel se extraen en valores entre 0 y 255 independientes. A continuación se utilizan estos valores para consultar nuevos valores de color en el conjunto adecuado:
redArray
,greenArray
,blueArray
yalphaArray
. Cada uno de estos conjuntos debe contener 256 valores. - Después de recuperar los cuatro valores de canal nuevos, se combinan en un valor ARGB estándar que se aplica al píxel.
Este método admite efectos intercanal. Cada conjunto de entrada puede contener valores completos de 32 bits, y no se produce desplazamiento cuando se suman los valores. Esta rutina no admite fijación de canales individuales.
Si no se especifica ningún conjunto para un canal, el canal de color se copia desde la imagen de origen hasta la de destino.
Puede emplear este método para diversos efectos, como asignación de paleta general (tomando un canal y convirtiéndolo en una imagen de color falso). También puede utilizarlo para una gran variedad de algoritmos de manipulación de color avanzados, como gamma, curvas, niveles y cuantificación.
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia a la instancia BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de la imagen de destino (el objeto BitmapData actual) que corresponde a la esquina superior izquierda del rectángulo de origen.
| |
redArray:Array (default = null ) — Si redArray no tiene el valor null , red = redArray[source red value] else red = source rect value .
| |
greenArray:Array (default = null ) — Si greenArray no tiene el valor null , green = greenArray[source green value] else green = source green value.
| |
blueArray:Array (default = null ) — Si blueArray no tiene el valor null , blue = blueArray[source blue value] else blue = source blue value .
| |
alphaArray:Array (default = null ) — Si alphaArray no tiene el valor null , alpha = alphaArray[source alpha value] else alpha = source alpha value .
|
Emite
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
Ejemplo ( Cómo utilizar este ejemplo )
paletteMap()
para intercambiar el rojo por el verde en la mitad rectangular inferior del objeto 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étodo |
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Genera una imagen de ruido Perlin.
El algoritmo de generación de ruido Perlin interpola y combina funciones individuales de ruido aleatorio (denominadas octavas) en una función única que genera ruido aleatorio de aspecto más natural. Como las octavas musicales, cada función de octava es dos veces la frecuencia de la anterior. El ruido Perlin se ha descrito como una "suma fractal de ruido", ya que combina múltiples conjuntos de datos de ruido con distintos niveles de detalle.
Las funciones de ruido Perlin pueden emplearse para simular fenómenos naturales y paisajes, como la fibra de la madera, nubes o montañas. En la mayoría de los casos, el resultado de esta función no se muestra directamente, sino que se utiliza para procesar otras imágenes y darles variaciones seudo-aleatorias.
Las funciones digitales sencillas de ruido aleatorio producen a menudo imágenes con puntos contrastados y discordantes. Este tipo de contraste no suele darse en la naturaleza. El algoritmo de ruido Perlin combina varias funciones de ruido que funcionan en distintos niveles de detalle. Este algoritmo produce menores variaciones entre los valores de píxel colindantes.
Parámetros
baseX:Number — La frecuencia que se va a utilizar en la dirección x. Por ejemplo, para generar un ruido con el tamaño ajustado para una imagen de 64 x 128, pase 64 como valor baseX .
| |
baseY:Number — La frecuencia que se va a utilizar en la dirección y. Por ejemplo, para generar un ruido con el tamaño ajustado para una imagen de 64 x 128, pase 128 como valor baseY .
| |
numOctaves:uint — Número de octavas o funciones de ruido individuales que se va a combinar para crear este ruido. Cuanto mayor sea el número de octavas más detalladas serán las imágenes. Asimismo, un número elevado de octavas requiere más tiempo de procesamiento.
| |
randomSeed:int — El número de inicialización aleatorio que se va a utilizar. Si mantiene iguales todos los demás parámetros, podrá generar resultados seudo-aleatorios variando el valor de inicialización aleatorio. La función de ruido Perlin es una función de asignación y no una verdadera función de generación de ruido aleatorio, por lo que producirá siempre los mismos resultados con el mismo valor de inicialización aleatorio.
| |
stitch:Boolean — Valor booleano. Si es true , intenta suavizar los bordes de transición de la imagen para crear texturas totalmente integradas para mosaico como relleno de mapa de bits.
| |
fractalNoise:Boolean — Valor booleano. Si el valor es true , el método genera ruido fractal; en caso contrario, genera turbulencia. Una imagen con turbulencia presenta discontinuidades visibles en el degradado que pueden producir efectos visuales más nítidos, como llamas u olas del mar.
| |
channelOptions:uint (default = 7 ) — Un número que puede ser una combinación de cualquiera de los cuatro valores de canal de color (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN y BitmapDataChannel.ALPHA ). Puede utilizar el operador lógico OR (| ) para combinar valores de canal.
| |
grayScale:Boolean (default = false ) — Valor booleano. Si es true , se creará una imagen en escala de grises utilizando valores idénticos para todos los canales de color rojo, verde y azul. El valor del canal alfa no se ve afectado si este valor se establece como true .
| |
offsets:Array (default = null ) — Un conjunto de puntos que corresponde a desplazamientos x e y para cada octava. La manipulación de los valores de desplazamiento permite desplazarse con suavidad por una imagen con perlinNoise. Cada punto del conjunto de desplazamiento afecta a una función de ruido de octava específica.
|
Ejemplo ( Cómo utilizar este ejemplo )
perlinNoise()
para generar un efecto de acuarela rojo y azul:
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étodo |
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Realiza una disolución de píxeles de una imagen de origen a una imagen de destino o utilizando la misma imagen. El motor de ejecución de Flash utiliza un valor randomSeed
para generar una disolución de píxeles aleatoria. El valor devuelto por la función debe pasarse en llamadas posteriores para continuar la disolución de píxeles hasta terminar.
Si la imagen de origen no es igual a la de destino, los píxeles se copiarán desde el origen hasta el destino utilizando todas las propiedades. Este proceso permite disolver desde una imagen en blanco hasta una imagen completamente llena.
Si las imágenes de origen y destino son iguales, los píxeles se rellenan con el parámetro color
. Este proceso permite disolver desde una imagen completamente llena. En este modo se ignora el parámetro point
de destino.
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia a la instancia BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de la imagen de destino (la instancia de BitmapData actual) que corresponde a la esquina superior izquierda del rectángulo de origen.
| |
randomSeed:int (default = 0 ) — El valor de inicialización aleatorio que se va a utilizar para comenzar la disolución de píxeles.
| |
numPixels:int (default = 0 ) — El valor predeterminado es 1/30 del área de origen (anchura x altura).
| |
fillColor:uint (default = 0 ) — Un valor de color ARGB que se utiliza para rellenar los píxeles con un valor de origen igual al de destino.
|
int — El nuevo valor de inicialización aleatorio que se va a utilizar para llamadas posteriores.
|
Emite
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
| |
TypeError — El valor de numPixels es negativo.
|
Ejemplo ( Cómo utilizar este ejemplo )
pixelDissolve()
para convertir un objeto BitmapData gris a uno rojo disolviendo 40 píxeles a la vez hasta que todos los píxeles hayan cambiado de color:
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étodo |
public function scroll(x:int, y:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Desplaza una imagen una determinada cantidad de píxeles (x, y). Las regiones del borde fuera del área de desplazamiento permanecen sin modificar.
Parámetros
x:int — La cantidad en la que se realiza desplazamiento horizontal.
| |
y:int — La cantidad en la que se realiza desplazamiento vertical.
|
Ejemplo ( Cómo utilizar este ejemplo )
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étodo |
public function setPixel(x:int, y:int, color:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Establece un solo píxel de un objeto BitmapData. Durante esta operación se mantiene el valor del canal alfa actual del píxel de la imagen. El valor del parámetro de color RGB se trata como un valor de color no multiplicado.
Nota: para aumentar el rendimiento al utilizar el método setPixel()
o setPixel32()
repetidamente, llame al método lock()
antes de llamar a setPixel()
o setPixel32()
y luego llame al método unlock()
cuando haya realizado todos los cambios de píxeles. Este proceso evita que los objetos que hacen referencia a esta instancia de BitmapData se actualicen hasta que termine de realizar los cambios en los píxeles.
Parámetros
x:int — La posición x del píxel cuyo valor cambia.
| |
y:int — La posición y del píxel cuyo valor cambia.
| |
color:uint — El color RGB resultante para el píxel.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
setPixel()
para dibujar una línea roja en un objeto 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étodo |
public function setPixel32(x:int, y:int, color:uint):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Establece los valores de color y transparencia alfa de un solo píxel de un objeto BitmapData. Este método es similar a setPixel()
; la diferencia principal radica en que el método setPixel32()
toma un valor de color ARGB que contiene información del canal alfa.
Todos los píxeles de un objeto BitmapData se almacenan como valores de color premultiplicados. El píxel de imagen premultiplicado ya tiene los valores de canal de color rojo, verde y azul multiplicados por los datos alfa. Por ejemplo, si el valor alfa es cero, los canales RGB también son cero, independientemente de sus valores no multiplicados. Esta pérdida de datos puede ocasionar algunos problemas cuando se realizan operaciones. Todos los métodos BitmapData toman y devuelven valores no multiplicados. La representación interna de píxeles se convierte de premultiplicada a no multiplicada antes de que se devuelva como valor. Durante una operación dada, el valor de píxel se premultiplica antes de establecer el píxel de imagen en bruto.
Nota: para aumentar el rendimiento al utilizar el método setPixel()
o setPixel32()
repetidamente, llame al método lock()
antes de llamar a setPixel()
o setPixel32()
y luego llame al método unlock()
cuando haya realizado todos los cambios de píxeles. Este proceso evita que los objetos que hacen referencia a esta instancia de BitmapData se actualicen hasta que termine de realizar los cambios en los píxeles.
Parámetros
x:int — La posición x del píxel cuyo valor cambia.
| |
y:int — La posición y del píxel cuyo valor cambia.
| |
color:uint — El color ARGB resultante para el píxel. Si el mapa de bits es opaco (no transparente), se ignora la parte de transparencia alfa de este valor de color.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
setPixel32()
para dibujar una línea roja transparente (alfa == 0x60) en un objeto 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étodo |
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Convierte un conjunto de bytes en una zona rectangular de datos de píxeles. Por cada píxel, se llama al método ByteArray.readUnsignedInt()
y se escribe el valor devuelto en el píxel. Si el conjunto de bytes termina antes de que se escriba en todo el rectángulo, la función devuelve un valor. Se espera que los datos del conjunto de bytes sean valores de píxeles ARGB de 32 bits. No se realiza ninguna búsqueda en el conjunto de bytes ni antes ni después de que se lean los píxeles.
Parámetros
rect:Rectangle — Especifica la zona rectangular del objeto BitmapData.
| |
inputByteArray:ByteArray — Objeto ByteArray que consta de valores de píxel no multiplicados de 32 bits que se va a utilizar en la zona rectangular.
|
Emite
EOFError — El objeto inputByteArray no incluye suficientes datos como para llenar el área del rectángulo rect . El método rellena la mayor cantidad posible de píxeles antes de emitir la excepción.
| |
TypeError — rect o inputByteArray tienen el valor null.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
getPixels()
y setPixels()
para copiar píxeles de un objeto BitmapData a otro:
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étodo |
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Convierte un vector en una zona rectangular de datos de píxeles. Para cada píxel, se lee un elemento Vector y se escribe en el píxel de BitmapData. Se espera que los datos del vector sean valores de píxeles ARGB de 32 bits.
Parámetros
rect:Rectangle — Especifica la zona rectangular del objeto BitmapData.
| |
inputVector:Vector.<uint> — Un objeto Vector que consta de valores de píxel no multiplicados de 32 bits que se va a utilizar en la zona rectangular.
|
Emite
RangeError — El conjunto de vectores no es lo suficientemente grande para leer todos los datos de píxeles.
|
threshold | () | método |
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Prueba valores de píxel en una imagen con un umbral especificado y define los píxeles que se pasan para probar los valores del nuevo color. El método threshold()
permite aislar y reemplazar rangos de color en una imagen y realizar otras operaciones lógicas en los píxeles de la imagen.
La lógica de prueba del método threshold()
es la siguiente:
- Si
((pixelValue & mask) operation (threshold & mask))
, se debería definir el píxel comocolor
; - En caso contrario, si
copySource == true
, se debe definir el píxel con el correspondiente valor de píxel desourceBitmap
.
El parámetro operation
especifica el operador de comparación que se va a utilizar para la prueba de umbral. Por ejemplo, utilizando "==" como parámetro operation
, puede aislar el valor de un color específico de una imagen. O bien, si utiliza {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}
, puede definir todos los píxeles de destino como totalmente transparentes cuando el alfa del píxel de la imagen de origen sea menor que 0x7F. Puede utilizar esta técnica para transiciones animadas y otros efectos.
Parámetros
sourceBitmapData:BitmapData — La imagen de mapa de bits de entrada que se va a utilizar. La imagen de origen puede ser otro objeto BitmapData o puede hacer referencia a la instancia de BitmapData actual.
| |
sourceRect:Rectangle — Un rectángulo que define el área de la imagen de origen que se va a utilizar como entrada.
| |
destPoint:Point — El punto de la imagen de destino (la instancia de BitmapData actual) que corresponde a la esquina superior izquierda del rectángulo de origen.
| |
operation:String — Uno de los siguientes operadores de comparación, pasados como una cadena: "<", "<=", ">", ">=", "==", "!="
| |
threshold:uint — El valor con el que se prueba cada píxel para comprobar si está dentro o supera el umbral.
| |
color:uint (default = 0 ) — El valor de color con el que se define un píxel si se supera la prueba de umbral. El valor predeterminado es 0x00000000.
| |
mask:uint (default = 0xFFFFFFFF ) — La máscara que se va a emplear para aislar un componente de color.
| |
copySource:Boolean (default = false ) — Si el valor es true , los valores de píxel de la imagen de origen se copian al destino cuando falla la prueba de umbral. Si es false , la imagen de origen no se copia cuando falla la prueba de umbral.
|
uint — El número de píxeles modificados.
|
Emite
TypeError — sourceBitmapData, sourceRect, destPoint o la operación tienen el valor null.
| |
ArgumentError — La cadena de operación no es una operación válida.
|
Ejemplo ( Cómo utilizar este ejemplo )
perlinNoise()
para agregar un patrón azul y rojo a un objeto BitmapData y se emplea después el método threshold()
para copiar dichos píxeles desde el primer objeto BitmapData al segundo, reemplazando aquellos con el valor rojo mayor que 0x80 (50%) por un píxel establecido como rojo transparente (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étodo |
public function unlock(changeRect:Rectangle = null):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 9, AIR 1.0 |
Desbloquea una imagen de manera que los objetos que hacen referencia al objeto BitmapData como, por ejemplo, los objetos Bitmap, se actualicen cuando cambia este objeto BitmapData. Para mejorar el rendimiento, utilice este método junto con el método lock()
antes y después de realizar numerosas llamadas al método setPixel()
o setPixel32()
.
Parámetros
changeRect:Rectangle (default = null ) — El área del objeto BitmapData que ha cambiado. Si no especifica ningún valor para este parámetro, se considerará que ha cambiado toda el área del objeto BitmapData. Este parámetro requiere la versión 9.0.115.0 de Flash Player o una versión posterior.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
bitmapData
de un objeto Bitmap, picture
. A continuación, llama al método lock()
antes de llamar a una función personalizada complicada, complexTransformation()
, que modifica el objeto BitmapData. (El objeto picture
y la función complexTransformation()
no se definen en este ejemplo.) Incluso si la función complexTransformation()
actualiza la propiedad bitmapData
del objeto picture
, los cambios no se reflejan hasta que el código llama al método unlock()
en el objeto bitmapData
:
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold()
. Esta tarea se consigue con los pasos siguientes:
- Se crea una propiedad
url
, que es la ubicación y el nombre del archivo de imagen. - El constructor de la clase crea un objeto Loader, que a su vez crea la instancia de un detector de eventos que se distribuye cuando el método
completeHandler()
finaliza la manipulación de la imagen. - El objeto URLRequest
request
se transfiere seguidamente aloader.load()
, que carga la imagen en la memoria mediante un objeto de visualización. - La imagen se incluye entonces en la lista de visualización, que muestra la imagen en la pantalla con las coordenadas x = 0, y = 0.
- El método
completeHandler()
realiza lo siguiente:- Crea un segundo objeto Loader, junto con Bitmap, que se inicializa con el objeto Loader.
- Crea un segundo objeto Bitmap,
duplicate
, que a su vez llama al métododuplicateImage()
, que crea un duplicado de la imagen original. - Crea un objeto BitmapData que se asigna al objeto BitmapData del objeto
duplicate
. - Crea un nuevo objeto Rectangle inicializado con las mismas coordenadas, anchura y altura que la imagen original.
- Crea un nuevo objeto Point, que se establece de forma predeterminada en x = 0, y = 0.
- Crea las siguientes variables:
operation
: aplica el nuevo color cuando el valor del umbral es mayor o igual que el original.threshold
: el valor con el que se compara cada píxel (en este ejemplo, gris claro con un alfa de 0xCC).color
: el color con el que se definen los píxeles que superan la prueba de umbral, que en este caso es amarillo sólido.mask
: el contrario exacto del color (azul transparente).copySource
: se establece comofalse
, lo que indica que los valores de píxel no se copian si no se pasa el valor de umbral. Este valor no significa nada porque la imagen está duplicada y sólo se modifican los píxeles que superan la prueba de umbral.
- Llama al método
threshold()
mediante las variables anteriores. La ecuación del umbral resultante es la siguiente:if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00
.
Notas:
- Necesitará compilar el archivo SWF con la opción Seguridad de reproducción local establecida como Acceder sólo a archivos locales.
- Este ejemplo requiere la colocación de un archivo llamado Image.gif en el mismo directorio que el archivo SWF.
- Se recomienda utilizar una imagen de una anchura aproximada de 80 píxeles como máximo.
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, 02:12 PM Z