| Paquete | flash.display |
| Clase | public class BitmapData |
| Herencia | BitmapData Object |
| Implementa | IBitmapDrawable |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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 una matriz 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.ALPHABitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEPuede 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().
Un objeto BitmapData puede tener una altura y una anchura máximas de 2.880 píxeles.
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().
Véase también
| 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
[read-only]
Altura de la imagen de mapa de bits, expresada en píxeles.
| BitmapData | ||
![]() | prototype : Object
[static]
Una referencia al objeto prototipo de una clase u objeto de función.
| Object | |
| rect : Rectangle
[read-only]
Rectángulo que define el tamaño y la ubicación de la imagen de mapa de bits.
| BitmapData | ||
| transparent : Boolean
[read-only]
Define si la imagen de mapa de bits admite transparencia por píxel.
| BitmapData | ||
| width : int
[read-only]
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 | ||
|
Libera memoria que se utiliza para almacenar el objeto BitmapData.
| BitmapData | ||
|
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Dibuja el objeto de visualización de origen en la imagen de mapa de bits mediante el procesador de vectores de Flash Player.
| 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 una matriz de bytes de una zona rectangular de datos de píxeles.
| BitmapData | ||
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
|
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 una matriz 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 | |
|
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 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 |
height:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Altura de la imagen de mapa de bits, expresada en píxeles.
public function get height():int
| rect | propiedad |
rect:Rectangle [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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 al ancho y al alto en píxeles del objeto BitmapData.
public function get rect():Rectangle
| transparent | propiedad |
transparent:Boolean [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.
public function get transparent():Boolean
| width | propiedad |
width:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Anchura de la imagen de mapa de bits, expresada en píxeles.
public function get width():int
| BitmapData | () | constructor |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.
Un objeto BitmapData puede tener una altura y una anchura máximas de 2.880 píxeles. 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).
|
ArgumentError — la anchura y/o la altura no son válidas (menor o igual que cero, mayor que 2880)
|
| applyFilter | () | método |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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, Flash Player utilizará 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:
|
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.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
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:ColorTransform):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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:ColorTransform — Un objeto ColorTransform que describe los valores de transformación de color que se van a aplicar.
|
TypeError — rect o colorTransform tienen el valor null.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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:
otherBitmapData). Las diferencias del canal alfa se omiten en este caso. 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 (0xFF8800 y 0xCC6600). 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.
|
TypeError — otherBitmapData tiene el valor null.
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace(diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
| copyChannel | () | método |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEBitmapDataChannel.ALPHAPará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).
|
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
| dispose | () | método |
public function dispose():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.
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:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Dibuja el objeto de visualización source en la imagen de mapa de bits empleando el procesador de vectores de Flash Player. 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).
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.
Nota: el objeto source y (en el caso de un objeto Sprite o MovieClip) todos sus objetos secundarios deben proceder del mismo dominio que el origen de la llamada o estar en un archivo SWF que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain(). Si no se cumplen estas condiciones, el método draw() no dibujará nada.
Este método se admite a través de RTMP en Flash Player Update 3 y versiones posteriores. Puede controlar el acceso a transmisiones en Flash Media Server en un script del lado del servidor. Para 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.
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: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 |
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 un archivo SWF que sea accesible al origen de la llamada mediante la llamada al método Security.allowDomain().
|
|
ArgumentError — El origen tiene el valor null o no es un objeto IBitmapDrawable válido.
|
Véase también
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
| fillRect | () | método |
public function fillRect(rect:Rectangle, color:uint):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.
|
TypeError — rect tiene el valor null.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
(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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
TypeError — sourceRect o el filtro tienen el valor null.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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(1, 1); trace(pixelValue.toString(16)); // ff0000;
| getPixel32 | () | método |
public function getPixel32(x:int, y:int):uint
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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(1, 1); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
| getPixels | () | método |
public function getPixels(rect:Rectangle):ByteArray
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Genera una matriz 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 de la matriz de bytes.
Parámetros
rect:Rectangle — Un área rectangular del objeto BitmapData actual.
|
ByteArray — Una matriz ByteArray que representa los píxeles del objeto Rectangle en cuestión.
|
TypeError — rect tiene el valor null.
|
Véase también
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);
| 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 |
| Versión del reproductor: | Flash Player 9 |
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. 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 alto 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 alto 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.
|
ArgumentError — El parámetro secondObject no es un objeto Point, Rectangle, Bitmap o BitmapData.
|
|
TypeError — firstPoint tiene el valor null.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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().
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
Flash Player utiliza los siguientes pasos para generar la imagen resultante:
redArray, greenArray, blueArray y alphaArray. Cada una de estas cuatro matrices debe contener 256 valores. Este método admite efectos intercanal. Cada matriz 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 ninguna matriz 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.
|
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
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 reproductor: | Flash Player 9 |
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.
Nota: el algoritmo de ruido Perlin recibe su nombre de Ken Perlin, que lo desarrolló después de generar gráficos para la película Tron en 1982. En 1997, Perlin ganó un Oscar en la categoría de logros tecnológicos por la función de ruido que había desarrollado.
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) — Una matriz 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 de la matriz de desplazamiento afecta a una función de ruido de octava específica.
|
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 |
| Versión del reproductor: | Flash Player 9 |
Realiza una disolución de píxeles de una imagen de origen a una imagen de destino o utilizando la misma imagen. Flash Player 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 (ancho x alto).
|
|
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.
|
TypeError — sourceBitmapData, sourceRect o destPoint tienen el valor null.
|
|
TypeError — El valor de numPixels es negativo.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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 |
| Versión del reproductor: | Flash Player 9 |
Convierte una matriz 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 la matriz de bytes termina antes de que se escriba en todo el rectángulo, la función devuelve un valor. Se espera que los datos de la matriz de bytes sean valores de píxeles ARGB de 32 bits. No se realiza ninguna búsqueda en la matriz 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.
|
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.
|
Véase también
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;
| 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 |
| Versión del reproductor: | Flash Player 9 |
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:
((pixelValue & mask) operation (threshold & mask)), se debería definir el píxel como color;copySource == true, se debe definir el píxel con el correspondiente valor de píxel de sourceBitmap.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.
|
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.
|
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 |
| Versión del reproductor: | Flash Player 9 |
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.
|
Véase también
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:
url, que es la ubicación y el nombre del archivo de imagen.completeHandler() finaliza la manipulación de la imagen.request se transfiere seguidamente a loader.load(), que carga la imagen en la memoria mediante un objeto de visualización.completeHandler() realiza lo siguiente:
duplicate, que a su vez llama al método duplicateImage(), que crea un duplicado de la imagen original. duplicate.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 como false, 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.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:
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);
}
}
}
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/display/BitmapData.html