| Paquete | flash.filters |
| Clase | public class ConvolutionFilter |
| Herencia | ConvolutionFilter BitmapFilter Object |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Para crear un filtro de convolución, utilice la sintaxis new ConvolutionFilter(). El uso de filtros depende del objeto al que se aplique el filtro:
filters (heredada de DisplayObject). La propiedad filters de un objeto no lo modifica y se puede quitar el filtro borrando la propiedad filters. BitmapData.applyFilter(). Cuando se llama a applyFilter() en un objeto BitmapData, se genera una imagen filtrada al procesar el objeto BitmapData de origen y el objeto de filtro.Si aplica un filtro a un objeto de visualización, el valor de la propiedad cacheAsBitmap del objeto se establece en true. Si borra todos los filtros, se restaurará el valor original de cacheAsBitmap.
El filtro no se aplica si la imagen resultante supera los 2880 píxeles de anchura o altura. Por ejemplo, si amplía un clip de película grande al que se le ha aplicado un filtro, éste se desactiva si la imagen resultante supera el límite de 2880 píxeles.
Véase también
| Propiedad | Definido por | ||
|---|---|---|---|
| alpha : Number
Valor de transparencia alfa del color opcional.
| ConvolutionFilter | ||
| bias : Number
Cantidad de sesgo que debe añadirse al resultado de la transformación de matriz.
| ConvolutionFilter | ||
| clamp : Boolean
Indica si la imagen debe fijarse.
| ConvolutionFilter | ||
| color : uint
Color hexadecimal para reemplazar los píxeles que quedan fuera de la imagen de origen.
| ConvolutionFilter | ||
![]() | constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
| Object | |
| divisor : Number
Divisor que se utiliza durante la transformación de matriz.
| ConvolutionFilter | ||
| matrix : Array
Conjunto de valores que se utiliza para la transformación de matriz.
| ConvolutionFilter | ||
| matrixX : Number
La dimensión x de la matriz (el número de columnas de la matriz).
| ConvolutionFilter | ||
| matrixY : Number
La dimensión y de la matriz (el número de filas de la matriz).
| ConvolutionFilter | ||
| preserveAlpha : Boolean
Indica si el canal alfa se conserva sin el efecto de filtro o si se aplica el filtro de convolución al canal alfa, así como a los canales de color.
| ConvolutionFilter | ||
![]() | prototype : Object
[static]
Una referencia al objeto prototipo de una clase u objeto de función.
| Object | |
| Método | Definido por | ||
|---|---|---|---|
|
ConvolutionFilter(matrixX:Number = 0, matrixY:Number = 0, matrix:Array = null, divisor:Number = 1.0, bias:Number = 0.0, preserveAlpha:Boolean = true, clamp:Boolean = true, color:uint = 0, alpha:Number = 0.0)
Inicializa una instancia ConvolutionFilter con los parámetros especificados.
| ConvolutionFilter | ||
|
Devuelve una copia de este objeto de filtro.
| ConvolutionFilter | ||
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
![]() |
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
| Object | |
![]() |
Indica si existe la propiedad especificada y si es enumerable.
| Object | |
![]() |
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
| Object | |
![]() |
Devuelve la representación de cadena del objeto especificado.
| Object | |
![]() |
Devuelve el valor simple del objeto especificado.
| Object | |
| alpha | propiedad |
alpha:Number [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Valor de transparencia alfa del color opcional. Los valores válidos van de 0 a 1,0. El valor por defecto es 0. Por ejemplo, 0,25 establece un valor de transparencia del 25%.
public function get alpha():Number
public function set alpha(value:Number):void
| bias | propiedad |
bias:Number [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Cantidad de sesgo que debe añadirse al resultado de la transformación de matriz. El sesgo aumenta el valor de color de cada canal para que los colores oscuros parezcan más claros. El valor predeterminado es 0.
public function get bias():Number
public function set bias(value:Number):void
| clamp | propiedad |
clamp:Boolean [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Indica si la imagen debe fijarse. Para los píxeles que quedan fuera de la imagen de origen, un valor true indica que la imagen de entrada se amplía a lo largo de cada uno de sus bordes cuanto sea necesario duplicando los valores de color en cada borde de la imagen de entrada. false indica que se utilizará otro color, según se haya especificado en las propiedades color y alpha. El valor predeterminado es true.
public function get clamp():Boolean
public function set clamp(value:Boolean):void
BitmapData; el tamaño de uno de ellos es la mitad del otro. Cuando el ejemplo se carga por primera vez, el cuadro más grande se dibuja dentro de mc utilizando attachBitmap(). Cuando se hace clic en mc y se llama al método applyFilter(), la instancia largeBox de BitmapData se vuelve a dibujar con smallBox como mapa de bits de origen. Como applyFilter() dibuja un objeto smallBox en un elemento Rectangle cuya anchura y altura vienen especificadas como las del objeto largeBox, el mapa de bits de origen es más pequeño que el área de dibujo. La propiedad clamp de ConvolutionFilter en este caso se define como false y el área que no queda cubierta por el mapa de bits de origen, smallBox, es de color rojo, tal como se determina en las variables clampColor y clampAlpha.
package {
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.filters.ConvolutionFilter;
import flash.text.TextField;
import flash.geom.Rectangle;
import flash.geom.Point;
public class ConvolutionClampExample extends Sprite {
// Variables that affect clamping:
var clamp:Boolean = false;
var clampColor:Number = 0xFF0000;
var clampAlpha:Number = 1;
// For illustration, keep other ConvolutionFilter variables neutral:
var bias:Number = 0;
var preserveAlpha:Boolean = false;
// Also, construct a neutral matrix
var matrixCols:Number = 3;
var matrixRows:Number = 3;
var matrix:Array = [ 1,1,1,
1,1,1,
1,1,1 ];
var filter:ConvolutionFilter = new ConvolutionFilter(matrixCols, matrixRows, matrix, matrix.length, bias, preserveAlpha, clamp, clampColor, clampAlpha);
var largeBoxWidth:Number = 100;
var largeBoxHeight:Number = 100;
var largeBox:BitmapData = new BitmapData(largeBoxWidth, largeBoxWidth, true, 0xCC00FF00);
var smallBoxWidth:Number = largeBoxWidth / 2;
var smallBoxHeight:Number = largeBoxHeight / 2;
var smallBox:BitmapData = new BitmapData(smallBoxWidth, smallBoxWidth, true, 0xCC0000FF);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(largeBox, this.getNextHighestDepth());
mc.onPress = function() {
largeBox.applyFilter(smallBox,
new Rectangle(0,0, largeBoxWidth, largeBoxHeight),
new Point(0,0),
filter);
}
}
}| color | propiedad |
color:uint [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Color hexadecimal para reemplazar los píxeles que quedan fuera de la imagen de origen. Es un valor RGB sin componente alfa. El valor por defecto es 0.
public function get color():uint
public function set color(value:uint):void
| divisor | propiedad |
divisor:Number [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Divisor que se utiliza durante la transformación de matriz. El valor predeterminado es 1. Un divisor que es la suma de todos los valores de matriz suaviza la intensidad de color general del resultado. Se ignora un valor de 0 y en su lugar se utiliza el valor predeterminado.
public function get divisor():Number
public function set divisor(value:Number):void
| matrix | propiedad |
matrix:Array [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Conjunto de valores que se utiliza para la transformación de matriz. El número de elementos de la matriz debe ser igual a matrixX * matrixY.
Una convolución de matriz se basa en una matriz n x m, que describe cómo el valor de un píxel determinado en la imagen de entrada se combina con los valores de los píxeles colindantes para producir un valor de píxel resultante. Cada píxel resultante se determina aplicando la matriz al píxel de origen correspondiente y a los píxeles colindantes.
Para una convolución de matriz 3 x 3 se emplea la fórmula siguiente para cada canal de color independiente:
dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1....
src(x, y+1) * a7 + src (x+1,y+1) * a8) / divisor) + bias
Algunas especificaciones de filtro se ejecutan más rápidamente cuando se utiliza un procesador con SSE (Streaming SIMD Extensions). A continuación, se indican criterios para conseguir operaciones de convolución más rápidas:
Nota: si se crea una instancia de ConvolutionFilter utilizando el constructor sin parámetros, el orden en que se asignan los valores a las propiedades de la matriz afecta al comportamiento del filtro. En el siguiente caso, la matriz se asigna mientras que las propiedades matrixX y matrixY siguen definidas en 0 (valor predeterminado):
public var myfilter:ConvolutionFilter = new ConvolutionFilter();
myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0];
myfilter.matrixX = 3;
myfilter.matrixY = 3;
En el siguiente caso, la matriz se asigna mientras que las propiedades matrixX y matrixY están definidas en 3:
public var myfilter:ConvolutionFilter = new ConvolutionFilter();
myfilter.matrixX = 3;
myfilter.matrixY = 3;
myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0];
public function get matrix():Array
public function set matrix(value:Array):void
TypeError — La matriz es null cuando se define
|
| matrixX | propiedad |
matrixX:Number [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
La dimensión x de la matriz (el número de columnas de la matriz). El valor predeterminado es 0.
public function get matrixX():Number
public function set matrixX(value:Number):void
| matrixY | propiedad |
matrixY:Number [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
La dimensión y de la matriz (el número de filas de la matriz). El valor predeterminado es 0.
public function get matrixY():Number
public function set matrixY(value:Number):void
| preserveAlpha | propiedad |
preserveAlpha:Boolean [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Indica si el canal alfa se conserva sin el efecto de filtro o si se aplica el filtro de convolución al canal alfa, así como a los canales de color. Un valor false indica que la convolución se aplica a todos los canales, incluido el canal alfa. true indica que la convolución sólo se aplica a los canales de color. El valor predeterminado es true.
public function get preserveAlpha():Boolean
public function set preserveAlpha(value:Boolean):void
| ConvolutionFilter | () | constructor |
public function ConvolutionFilter(matrixX:Number = 0, matrixY:Number = 0, matrix:Array = null, divisor:Number = 1.0, bias:Number = 0.0, preserveAlpha:Boolean = true, clamp:Boolean = true, color:uint = 0, alpha:Number = 0.0)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Inicializa una instancia ConvolutionFilter con los parámetros especificados.
ParámetrosmatrixX:Number (default = 0) — La dimensión x de la matriz (el número de columnas de la matriz). El valor predeterminado es 0.
|
|
matrixY:Number (default = 0) — La dimensión y de la matriz (el número de filas de la matriz). El valor predeterminado es 0.
|
|
matrix:Array (default = null) — Matriz de valores utilizados para la transformación de matrices. El número de elementos de la matriz debe ser igual a matrixX * matrixY.
|
|
divisor:Number (default = 1.0) — Divisor que se utiliza durante la transformación de matriz. El valor predeterminado es 1. Un divisor que es la suma de todos los valores de matriz compensa la intensidad de color general del resultado. Se ignora un valor de 0 y en su lugar se utiliza el valor predeterminado.
|
|
bias:Number (default = 0.0) — Sesgo que debe añadirse al resultado de la transformación de matriz. El valor predeterminado es 0.
|
|
preserveAlpha:Boolean (default = true) — Un valor false indica que el valor alfa no se conserva y que la convolución se aplica a todos los canales, incluido el canal alfa. true indica que la convolución sólo se aplica a los canales de color. El valor predeterminado es true.
|
|
clamp:Boolean (default = true) — Para los píxeles que quedan fuera de la imagen de origen, un valor true indica que la imagen de entrada se amplía a lo largo de cada uno de sus bordes cuanto sea necesario duplicando los valores de color en cada borde de la imagen de entrada. false indica que se utilizará otro color, según se haya especificado en las propiedades color y alpha. El valor predeterminado es true.
|
|
color:uint (default = 0) — Color hexadecimal para reemplazar los píxeles que quedan fuera de la imagen de origen.
|
|
alpha:Number (default = 0.0) — Alfa del color opcional.
|
| clone | () | método |
public override function clone():BitmapFilter
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Devuelve una copia de este objeto de filtro.
Valor devueltoBitmapFilter — Una nueva instancia ConvolutionFilter con las mismas propiedades que la instancia ConvolutionMatrixFilter original.
|
buildChild() cuatro veces para cargar y mostrar cuatro instancias de la imagen. Cada llamada a buildChild() toma como argumento una función que no aplica ningún filtro a la primera instancia y aplica filtros de convolución diferentes a cada una de las sucesivas instancias.
La función buildChild() crea un nuevo objeto Loader denominado loader. Para cada llamada a buildChild(), se asocia un detector de eventos al objeto Loader para detectar eventos complete que se controlan con la función transferida a buildChild().
Las funciones applyBrightness(), applySharpness() y applyOutline() utilizan distintos valores para la matriz matrix para conseguir distintos efectos de ConvolutionFilter.
Nota: para obtener los mejores resultados, utilice una imagen de aproximadamente 80 píxeles de anchura. El nombre y la ubicación del archivo de imagen deben coincidir con el valor transferido a la propiedad url. Por ejemplo, el valor transferido a url en el ejemplo señala a un archivo de imagen llamado "Image.jpg" que se encuentra en el mismo directorio que el archivo SWF.
package {
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.filters.BitmapFilter;
import flash.filters.ConvolutionFilter;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class ConvolutionFilterExample extends Sprite {
private var size:uint = 140;
private var url:String = "Image.jpg";
public function ConvolutionFilterExample() {
buildChild(applyNothing);
buildChild(applyBrightness);
buildChild(applySharpness);
buildChild(applyOutline);
}
private function buildChild(loadHandler:Function):void {
var loader:Loader = new Loader();
loader.x = numChildren * size;
loader.y = size;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
if(loadHandler != null) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
}
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function applyNothing(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
applyLabel(child, "no filter");
}
private function applyBrightness(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [5, 5, 5,
5, 0, 5,
5, 5, 5];
applyFilter(child, matrix);
applyLabel(child, "brightness");
}
private function applySharpness(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [0, -1, 0,
-1, 20, -1,
0, -1, 0];
applyFilter(child, matrix);
applyLabel(child, "sharpness");
}
private function applyOutline(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [-30, 30, 0,
-30, 30, 0,
-30, 30, 0];
applyFilter(child, matrix);
applyLabel(child, "outline");
}
private function applyFilter(child:DisplayObject, matrix:Array):void {
var matrixX:Number = 3;
var matrixY:Number = 3;
var divisor:Number = 9;
var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor);
var filters:Array = new Array();
filters.push(filter);
child.filters = filters;
}
private function applyLabel(child:DisplayObject, label:String):void {
var tf:TextField = new TextField();
tf.x = child.x;
tf.y = child.height;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = label;
addChild(tf);
}
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/filters/ConvolutionFilter.html