Pacote | flash.display |
Classe | public class BitmapData |
Herança | BitmapData Object |
Implementações | IBitmapDrawable |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
flash.display.Loader
.
Essa classe permite separar operações de renderização de bitmap das rotinas internas de atualização da exibição do Flash Player. Ao manipular diretamente um objeto BitmapData, você pode criar imagens complexas sem fica sujeito à sobrecarga por quadro do redesenho constante do conteúdo a partir de dados vetoriais.
Os métodos da classe BitmapData oferecem suporte a efeitos que não estão disponíveis por meio dos filtros disponíveis a objetos de exibição não bitmap.
Um objeto BitmapData contém uma matriz de dados de pixel. Esses dados podem representar um bitmap totalmente opaco ou um bitmap transparente que contém dados de canais alfa. Qualquer um desses tipos de objeto BitmapData é armazenado como um buffer de inteiros de 32 bits. Cada inteiro de 32 bits determina as propriedades de um único pixel no bitmap.
Cada inteiro de 32 bits é uma combinação de quatro valores de canal de 8 bits (de 0 a 255) que descrevem a transparência de alfa e os valores de vermelho, verde e azul (ARGB) do pixel. (Para valores ARGB, o byte mais significativo representa o valor do canal alfa, seguido de vermelho, verde e azul.)
Os quatro canais (alfa, vermelho, verde e azul) são representados como números usados com o método BitmapData.copyChannel()
ou as propriedades DisplacementMapFilter.componentX
e DisplacementMapFilter.componentY
e esses números são representados pelas seguintes constantes na classe BitmapDataChannel:
-
BitmapDataChannel.ALPHA
-
BitmapDataChannel.RED
-
BitmapDataChannel.GREEN
-
BitmapDataChannel.BLUE
Você pode anexar objetos BitmapData a um objeto Bitmap usando a propriedade bitmapData
do objeto Bitmap.
Um objeto BitmapData pode ser usado para preencher um objeto Graphics usando o método Graphics.beginBitmapFill()
.
No tempo de execução do AIR, as classes DockIcon, Icon, InteractiveIcon e SystemTrayIcon incluem cada uma propriedade bitmaps
que está em uma matriz de objetos BitmapData que definem as imagens de bitmap de um ícone.
No AIR 1.5 e no Flash Player 10, o tamanho máximo de um objeto BitmapData é de 8.191 pixels de largura ou de altura, e o número total de pixels não pode exceder 16.777.215 pixels. (Dessa forma, caso um objeto BitmapData tenha 8.191 pixels de largura, ele só pode ter 2.048 pixels de altura.) No Flash Player 9 e anteriores e no AIR 1.1 e anteriores, a limitação é de 2.880 de altura e de 2.880 pixels de largura.
A partir do AIR 3 e Flash player 11, os limites de tamanho para um objeto BitmapData foram removidos. O tamanho máximo de um bitmap agora depende do sistema operacional.
As chamadas a qualquer método ou propriedade de um objeto BitmapData lançarão um erro ArgumentError se o objeto BitmapData for inválido (por exemplo, se tiver altura == 0
e largura == 0
) ou se tiver sido descartado via dispose().
Elementos da API relacionados
flash.desktop.DockIcon.bitmaps
flash.display.Graphics.beginBitmapFill()
flash.desktop.Icon.bitmaps
flash.desktop.InteractiveIcon.bitmaps
flash.display.Loader
flash.desktop.SystemTrayIcon.bitmaps
Propriedade | Definido por | ||
---|---|---|---|
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
height : int [somente leitura]
A altura da imagem bitmap, em pixels. | BitmapData | ||
rect : Rectangle [somente leitura]
O retângulo que define o tamanho e a localização da imagem bitmap. | BitmapData | ||
transparent : Boolean [somente leitura]
Define se a imagem bitmap oferece suporte à transparência por pixel. | BitmapData | ||
width : int [somente leitura]
A largura da imagem bitmap, em pixels. | BitmapData |
Método | Definido por | ||
---|---|---|---|
Cria um objeto BitmapData com uma largura e altura especificadas. | BitmapData | ||
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Usa uma imagem de origem e um objeto de filtro e gera a imagem filtrada. | BitmapData | ||
Retorna um novo objeto BitmapData que é clone da ocorrência original com uma cópia exata do bitmap contido. | BitmapData | ||
Ajusta os valores de cor em uma área especificada de uma imagem bitmap usando um objeto ColorTransform. | BitmapData | ||
Compara dois objetos BitmapData. | BitmapData | ||
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Transfere dados de um canal de outro objeto BitmapData ou do objeto BitmapData atual para um canal do objeto BitmapData atual. | BitmapData | ||
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Fornece uma rotina rápida para executar a manipulação de pixels entre imagens sem estiramento, giro ou efeitos de cor. | BitmapData | ||
Preenche uma matriz de bytes com base em uma região retangular dos dados de pixels. | BitmapData | ||
Libera a memória usada para armazenar o objeto BitmapData. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Desenha o objeto de exibição original na imagem bitmap, usando o renderizador de vetores do tempo de execução do Flash. | BitmapData | ||
drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Desenha o objeto de exibição original na imagem bitmap, usando o renderizador de vetores do tempo de execução do Flash. | BitmapData | ||
Compacta este objeto BitmapData usando o algoritmo de compactação selecionado e retorna um novo objeto ByteArray. | BitmapData | ||
Preenche uma área retangular de pixels com uma cor ARGB especificada. | BitmapData | ||
Realiza uma operação de preenchimento em uma imagem, começando em uma coordenada (x, y) e preenchendo com uma certa cor. | BitmapData | ||
Determina o retângulo de destino afetado pela chamada do método applyFilter(), considerando um objeto BitmapData, um retângulo de origem e um objeto de filtro. | BitmapData | ||
Determina uma região retangular que delimita totalmente todos os pixels de uma cor especificada dentro da imagem bitmap (se o parâmetro localizarCor estiver definido como "true") ou que delimita totalmente todos os pixels que não incluem a cor especificada (se o parâmetro localizarCor estiver definido como "false"). | BitmapData | ||
Retorna um inteiro que representa um valor de pixel RGB a partir do objeto BitmapData em um ponto específico (x, y). | BitmapData | ||
Retorna um valor de cor ARGB que contém dados de canais alfa e dados RGB. | BitmapData | ||
Gera uma matriz de bytes a partir de uma região retangular dos dados de pixels. | BitmapData | ||
Gera uma matriz de vetores a partir de uma região retangular dos dados de pixel. | BitmapData | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Calcula um histograma de número binário de valor 256 de um objeto BitmapData. | BitmapData | ||
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Realiza a detecção de ocorrências em nível de pixels entre uma imagem bitmap e um ponto, um retângulo ou outra imagem bitmap. | BitmapData | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Bloqueia uma imagem de forma que qualquer objeto que faça referência ao objeto BitmapData, como objetos Bitmap, não seja atualizado quando esse objeto BitmapData for alterado. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Realiza a mesclagem por canal a partir de uma imagem de origem para uma imagem de destino. | BitmapData | ||
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Preenche uma imagem com pixels que representam ruído aleatório. | BitmapData | ||
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Remapeia os valores dos canais de cor em uma imagem que possui até quatro matrizes de dados de paleta de cores, uma para 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
Gera uma imagem de ruído Perlin. | BitmapData | ||
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Realiza uma operação de dissolver pixels a partir de uma imagem de origem para uma imagem de destino ou usando a mesma imagem. | BitmapData | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Rola uma imagem em uma certa quantidade de pixels (x, y). | BitmapData | ||
Define um único pixel de um objeto BitmapData. | BitmapData | ||
Define os valores de cor e transparência alfa de um único pixel de um objeto BitmapData. | BitmapData | ||
Converte uma matriz de bytes em uma região retangular de dados de pixels. | BitmapData | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Converte um Vector em uma região retangular de dados de pixels. | BitmapData | ||
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Testa valores de pixels em uma imagem com base em um limite especificado e define os pixels aprovados no texto como novos valores de cor. | BitmapData | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Desbloqueia uma imagem de forma que qualquer objeto que faça referência ao objeto BitmapData, como objetos Bitmap, seja atualizado quando esse objeto BitmapData for alterado. | BitmapData | ||
Retorna o valor primitivo do objeto especificado. | Object |
height | propriedade |
rect | propriedade |
rect:Rectangle
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
O retângulo que define o tamanho e a localização da imagem bitmap. As partes superior e esquerda do retângulo são 0; a largura e a altura são iguais à largura e à altura em pixels do objeto BitmapData.
Implementação
public function get rect():Rectangle
transparent | propriedade |
transparent:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Define se a imagem bitmap oferece suporte à transparência por pixel. Você pode definir esse valor apenas ao construir um objeto BitmapData transmitindo true
para o parâmetro transparente
do construtor. Em seguida, depois de criar um objeto BitmapData, você poderá verificar se ele oferece suporte à transparência por pixel determinando se o valor da propriedade transparent
é true
.
Implementação
public function get transparent():Boolean
width | propriedade |
BitmapData | () | Construtor |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Cria um objeto BitmapData com uma largura e altura especificadas. Se você especificar um valor para o parâmetro fillColor
, cada pixel no bitmap será definido como essa cor.
Por padrão, o bitmap é criado como transparente, a não ser que você transmita o valor false
para o parâmetro transparent
. Depois de criar um bitmap opaco, não é possível alterá-lo para um bitmap transparente. Cada pixel em um bitmap opaco usa apenas 24 bits de informações de canais de cor. Se você definir o bitmap como transparente, cada pixel usará 32 bits de informações de canais de cor, incluindo um canal de transparência alfa.
No AIR 1.5 e no Flash Player 10, o tamanho máximo de um objeto BitmapData é de 8.191 pixels de largura ou de altura, e o número total de pixels não pode exceder 16.777.215 pixels. (Dessa forma, caso um objeto BitmapData tenha 8.191 pixels de largura, ele só pode ter 2.048 pixels de altura.) No Flash Player 9 e anteriores e no AIR 1.1 e anteriores, a limitação é de 2.880 pixels de altura e de 2.880 pixels de largura. Se você especificar um valor de altura ou largura maior do que 2.880, uma nova ocorrência não será criada.
Parâmetroswidth:int — A largura da imagem bitmap, em pixels.
| |
height:int — A altura da imagem bitmap, em pixels.
| |
transparent:Boolean (default = true ) — Especifica se a imagem bitmap oferece suporte à transparência por pixel. O valor padrão é true (transparente). Para criar um bitmap totalmente transparente, defina o valor do parâmetro transparent como true e o valor do parâmetro fillColor como 0x00000000 (ou 0). Definir a propriedade transparent como false pode resultar em melhorias secundárias no desempenho de renderização.
| |
fillColor:uint (default = 0xFFFFFFFF ) — Um valor de cor ARGB de 32 bits usado para preencher a área da imagem bitmap. O valor padrão é 0xFFFFFFFF (branco sólido).
|
Lança
ArgumentError — largura e/ou altura excede as dimensões máximas.
|
applyFilter | () | método |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Usa uma imagem de origem e um objeto de filtro e gera a imagem filtrada.
Esse método depende do comportamento de objetos de filtro embutidos, que determinam o retângulo de destino que é afetado por um retângulo de origem de entrada.
Após a aplicação de um filtro, a imagem resultante pode ser maior do que a imagem de entrada. Por exemplo, se você uma classe BlurFilter para aplicar desfoque a um retângulo de origem de (50,50,100,100) e um ponto de destino de (10,10), a área que será alterada na imagem de destino será maior do que (10,10,60,60) por causa do desfoque. Isso acontece internamente durante a chamada applyFilter()
.
Se o parâmetro retOrigem
do parâmetro dadosBitmapOrigem
for uma região interior, como (50,50,100,100) em uma imagem de 200 x 200, o filtro usará os pixels de origem fora do parâmetro retOrigem
para gerar o retângulo de destino.
Se o objeto BitmapData e o objeto especificado como o parâmetro sourceBitmapData
forem o mesmo objeto, o aplicativo usará uma cópia temporária do objeto para realizar a filtragem. Para obter o melhor desempenho, evite essa situação.
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência à ocorrência atual de BitmapData.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O ponto na imagem de destino (a ocorrência atual de BitmapData) que corresponde ao canto superior esquerdo do retângulo de origem.
| |
filter:BitmapFilter — O objeto de filtro que você usa para realizar a operação de filtragem. Cada tipo de filtro tem certos requisitos, como os seguintes:
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem, pontoDest ou filtro são "null".
| |
IllegalOperationError — A transparência dos objetos BitmapData não é compatível com a operação de filtro.
|
Elementos da API relacionados
flash.filters.BlurFilter
flash.filters.ColorMatrixFilter
flash.filters.ConvolutionFilter
flash.filters.DisplacementMapFilter
flash.filters.DropShadowFilter
flash.filters.GlowFilter
flash.display.DisplayObject.filters
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retorna um novo objeto BitmapData que é clone da ocorrência original com uma cópia exata do bitmap contido.
RetornaBitmapData — Um novo objeto BitmapData é idêntico ao original.
|
Exemplo ( Como usar este exemplo )
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2);
colorTransform | () | método |
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Ajusta os valores de cor em uma área especificada de uma imagem bitmap usando um objeto ColorTransform
. Se o retângulo corresponder aos limites da imagem bitmap, esse método transformará os valores de cor da imagem inteira.
Parâmetros
rect:Rectangle — Um objeto Rectangle que define a área da imagem na qual o objeto ColorTransform é aplicado.
| |
colorTransform:flash.geom:ColorTransform — Um objeto ColorTransform que descreve os valores de transformação de cor a serem aplicados.
|
Lança
TypeError — O parâmetro ret ou transformaçãoCor é "null".
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Compara dois objetos BitmapData. Se dois objetos BitmapData tiverem as mesmas dimensões (largura e altura), o método retornará um novo objeto BitmapData, no qual cada pixel é a "diferença" entre os pixels nos dois objetos de origem:
- Se dois pixels forem iguais, o pixel de diferença será 0x00000000.
- Se dois pixels tiverem valores RGB diferentes (ignorando o valor alfa), o pixel de diferença será 0xRRGGBB, em que RR/GG/BB são os valores de diferença individuais entre os canais de vermelho, verde e azul (o valor de pixel no objeto de origem menos o valor de pixel no objeto
otherBitmapData
). Diferenças de canais alfa são ignoradas nesse caso. - Se apenas o valor do canal alfa for diferente, o valor do pixel será 0xZZFFFFFF, em que ZZ é a diferença nos valores alfa (o valor alfa no objeto de origem menos o valor alfa no objeto
otherBitmapData
).
Por exemplo, considere os dois objetos BitmapData a seguir:
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
Observação: As cores usadas para preencher os dois objetos BitmapData têm valores RGB um pouco diferentes (0xFF0000 e 0xFFAA00). O resultado do método compare()
é um novo objeto BitmapData com cada pixel mostrando a diferença nos valores RGB entre os dois bitmaps.
Considere os dois objetos BitmapData a seguir, nos quais as cores RGB são as mesmas, mas os valores alfa são 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
O resultado do método compare()
é um novo objeto BitmapData com cada pixel mostrando a diferença nos valores alfa entre os dois bitmaps.
Se os objetos BitmapData forem equivalentes (com as mesmas largura e altura e valores de pixels idênticos), o método retornará o número 0.
Se as larguras dos objetos BitmapData não forem iguais, o método retornará o número -3.
Se as alturas dos objetos BitmapData não forem iguais, mas as larguras forem as mesmas, o método retornará o número -4.
O exemplo a seguir compara dois objetos Bitmap com larguras diferentes (50 e 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 — O objeto BitmapData a ser comparado com o objeto BitmapData de origem.
|
Object — Se dois objetos BitmapData tiverem as mesmas dimensões (largura e altura), o método retornará um novo objeto BitmapData que tem a diferença entre os dois objetos (consulte a discussão principal). Se os objetos BitmapData forem equivalentes, o método retornará o número 0. Se as larguras dos objetos BitmapData não forem iguais, o método retornará o número -3. Se as alturas dos objetos BitmapData não forem iguais, o método retornará o número -4.
|
Lança
TypeError — O parâmetro outrosDadosBitmap é "null".
|
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Transfere dados de um canal de outro objeto BitmapData ou do objeto BitmapData atual para um canal do objeto BitmapData atual. Todos os dados nos outros canais do objeto BitmapData são preservados.
O valor do canal de origem e o valor do canal de destino podem ser um dos seguintes:
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência ao objeto BitmapData atual.
| |
sourceRect:Rectangle — O objeto Rectangle de origem. Para copiar apenas os dados de canal de uma área menor no bitmap, especifique um retângulo de origem que seja menor do que o tamanho geral do objeto BitmapData.
| |
destPoint:Point — O objeto Point de destino que representa o canto superior esquerdo da área retangular na qual os novos dados de canal são inseridos. Para copiar apenas os dados de canal de uma área para uma área diferente na imagem de destino, especifique um ponto diferente de (0,0).
| |
sourceChannel:uint — O canal de origem. Use um valor da classe BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
| |
destChannel:uint — O canal de destino. Use um valor da classe BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem ou pontoDest são "null".
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Fornece uma rotina rápida para executar a manipulação de pixels entre imagens sem estiramento, giro ou efeitos de cor. Esse método copia uma área retangular de uma imagem de origem em uma área retangular com o mesmo tamanho no ponto de destino do objeto BitmapData de destino.
Se você incluir os parâmetros alfaBitmap
e pontoAlfa
, poderá usar uma imagem secundária como origem alfa para a imagem de origem. Se a imagem de origem tiver dados alfa, ambos os conjuntos de dados alfa serão usados para compor pixels da imagem de origem para a imagem de destino. O parâmetro pontoAlfa
é o ponto na imagem alfa que corresponde ao canto superior esquerdo do retângulo de origem. Nenhum dos pixels fora da interseção da imagem de origem e da imagem alfa é copiado para a imagem de destino.
A propriedade mergeAlpha
controla se o canal alfa é o não usado quando uma imagem transparente é copiada em outra imagem transparente. Para copiar pixels com os dados de canal alfa, defina a propriedade mergeAlpha
como true
. Por padrão, a propriedade mergeAlpha
é false
.
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a partir da qual copiar os pixels. A imagem de origem pode ser uma ocorrência diferente de BitmapData diferente ou pode fazer referência à ocorrência atual de BitmapData.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O objeto de destino que representa o canto superior esquerdo da área retangular na qual os novos pixels são inseridos.
| |
alphaBitmapData:BitmapData (default = null ) — Uma origem de objeto BitmapData alfa secundária.
| |
alphaPoint:Point (default = null ) — O ponto na origem do objeto BitmapData alfa que corresponde ao canto superior esquerdo do parâmetro retOrigem .
| |
mergeAlpha:Boolean (default = false ) — Para usar o canal alfa, defina o valor como true . Para copiar pixels sem canal alfa, defina o valor como false .
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem ou pontoDest são "null".
|
Exemplo ( Como usar este exemplo )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
copyPixelsToByteArray | () | método |
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 11.4, AIR 3.4 |
Preenche uma matriz de bytes com base em uma região retangular dos dados de pixels. Iniciando-se do índice da posição
do ByteArray, este método escreve um inteiro sem sinal (um valor de pixel não multiplicado de 32 bits) para cada pixel em uma matriz de bytes. Se for necessário, o tamanho da matriz de bytes é aumentada para o número necessário de bytes para armazenar todos os dados de pixels.
Parâmetros
rect:Rectangle — Uma área retangular no objeto BitmapData atual
| |
data:ByteArray — o destino do objeto ByteArray
|
Lança
TypeError — se o argumento rect for null ou o argumento de dados for null
|
Elementos da API relacionados
dispose | () | método |
public function dispose():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Libera a memória usada para armazenar o objeto BitmapData.
Quando o método dispose()
é chamado em uma imagem, a largura e a altura dessa imagem são definidas como 0. Todas as chamadas subsequentes a métodos ou propriedades dessa ocorrência de BitmapData falharão e uma exceção será lançada.
BitmapData.dispose()
libera a memória ocupada pelos dados de reais do bitmap, imediatamente (um bitmap pode consumir até 64 Mb da memória). Depois de usar BitmapData.dispose()
, o objeto de BitmapData não é mais utilizável e o tempo de execução de Flash lança uma exceção se você chamar funções no objeto BitmapData. No entanto, BitmapData.dispose()
não faz a coleta do lixo do objeto BitmapData (aproximadamente 128 bytes); a memória ocupada pelo objeto BitmapData real é liberada no momento em que o objeto de BitmapData é reunido pelo coletor de lixo.
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
dispose()
(uma exceção é lançada):
import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
draw | () | método |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Desenha o objeto de exibição source
na imagem bitmap, usando o renderizador de vetores do tempo de execução do Flash. Você pode especificar o parâmetro matrix
, transformaçãoCor
, modoMesclagem
e um parâmetro retCorte
de destino para controlar como é feita a renderização. Opcionalmente, é possível especificar se o bitmap deve ser suavizado quando dimensionado (isso apenas funcionará se o objeto de origem for um objeto BitmapData).
Nota: O método drawWithQuality()
funciona exatamente como o método draw()
, mas em vez de usar a propriedade Stage.quality
para determinar a qualidade da renderização de vetor, você especifica o parâmetro quality
para o método drawWithQuality()
.
Esse método corresponde diretamente a como os objetos são desenhados com o renderizador de vetores padrão para objetos na interface da ferramenta de autoria.
O objeto de exibição de origem não usa nenhuma de suas transformações aplicadas para essa chamada. Ele é tratado como existente na biblioteca ou no arquivo, sem transformação de matriz, transformação de cor e modo de mesclagem. Para desenhar um objeto de exibição (como um clipe de filme) usando suas próprias propriedades de transformação, você pode copiar a propriedade transform
do objeto para a propriedade transform
do objeto Bitmap que usa o objeto BitmapData.
Este método é suportado pelo RTMP no Flash Player 9.0.115.0 e posterior e no Adobe AIR. Você pode controlar o acesso a fluxos no Flash Media Server em um script do lado do servidor. Para obter mais informações, consulte as propriedades Client.audioSampleAccess
e Client.videoSampleAccess
na Referência de lado do servidor do ActionScript para Adobe Flash Media Server.
Se o objeto source e (no caso de um objeto Sprite ou MovieClip) todos os seus objetos filhos não são provenientes do mesmo domínio do chamador ou não estão em um conteúdo acessível ao chamador depois que ele chamar o métodoSecurity.allowDomain()
, uma chamada para o draw()
lança uma exceção de SecurityError. Esta restrição não se aplica ao conteúdo do AIR na área de segurança do aplicativo.
Também há restrições quanto ao uso de uma imagem bitmap carregada como source
. Uma chamada para o método draw()
é bem-sucedida caso a imagem carregada esteja no mesmo domínio do chamador. Além disso, um arquivo de política em vários domínios no servidor da imagem pode conceder a permissão ao domínio do conteúdo SWF que chama o método draw()
. Nesse caso, você deve definir a propriedade checkPolicyFile
de um objeto LoaderContext, além de usar esse objeto como o parâmetro context
durante a chamada do método load()
do objeto Loader usado para carregar a imagem. Essas restrições não se aplicam ao conteúdo do AIR na área de segurança do aplicativo.
No Windows, o método draw()
não pode capturar o conteúdo SWF incorporado em uma página HTML em um objeto HTMLLoader no Adobe AIR.
O método draw()
não pode capturar conteúdo PDF no Adobe AIR. Ele também não pode capturar ou incorporar conteúdo SWF em HTML em que o atributo wmode
é definido como "window"
no Adobe AIR.
Parâmetros
source:IBitmapDrawable — O objeto de exibição ou o objeto BitmapData a ser desenhado para o objeto BitmapData. (As classes DisplayObject e BitmapData implementam a interface IBitmapDrawable.)
| |
matrix:Matrix (default = null ) — Um objeto Matrix usado para dimensionar, girar ou converter as coordenadas do bitmap. Se você não quiser aplicar uma transformação de matriz à imagem, defina esse parâmetro como uma matriz de identidade, criada com o construtor new Matrix() padrão, ou transmita um valor null .
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Um objeto ColorTransform que você usa para ajustar os valores de cor do bitmap. Se nenhum objeto for fornecido, as cores da imagem bitmap não serão transformadas. Se você precisar transmitir esse parâmetro, mas não quiser transformar a imagem, defina-o para um objeto ColorTransform criado com o construtor new ColorTransform() padrão.
| |
blendMode:String (default = null ) — Um valor de string, da classe flash.display.BlendMode, especificando o modo de mesclagem a ser aplicado ao bitmap resultante.
| |
clipRect:Rectangle (default = null ) — Um objeto Rectangle que define a área do objeto de origem a ser desenhado. Se você não fornecer esse valor, nenhum corte ocorrerá e o objeto de origem inteiro será desenhado.
| |
smoothing:Boolean (default = false ) — Um valor booliano que determina se um objeto BitmapData é suavizado quando dimensionado ou girado, devido a um dimensionamento ou giro no parâmetro matrix . O parâmetro suavização apenas será aplicável se o parâmetro origem for um objeto BitmapData. Com o parâmetro suavização definido como false , a imagem BitmapData dimensionada ou girada pode aparecer pixelizada ou irregular. Por exemplo, as duas imagens a seguir usam o mesmo objeto BitmapData para o parâmetro origem , mas o parâmetro suavização está definido como true à esquerda e como false à direita:
Desenhar um bitmap com o parâmetro |
Lança
ArgumentError — O parâmetro origem não é um objeto BitmapData ou DisplayObject.
| |
SecurityError — O objeto source e (no caso de um objeto Sprite ou MovieClip) todos os respectivos objetos-filho não são provenientes do mesmo domínio do chamador ou não estão em um conteúdo acessível ao chamador depois que ele chamar o método Security.allowDomain() . Esta restrição não se aplica ao conteúdo do AIR na área de segurança do aplicativo.
| |
ArgumentError — A origem é nula ou não é um objeto IBitmapDrawable válido.
|
Elementos da API relacionados
flash.display.Stage.quality
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Exemplo ( Como usar este exemplo )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
drawWithQuality | () | método |
public function drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 11.3, AIR 3.3 |
Desenha o objeto de exibição source
na imagem bitmap, usando o renderizador de vetores do tempo de execução do Flash. Você pode especificar o parâmetro matrix
, transformaçãoCor
, modoMesclagem
e um parâmetro retCorte
de destino para controlar como é feita a renderização. Opcionalmente, é possível especificar se o bitmap deve ser suavizado quando dimensionado (isso apenas funcionará se o objeto de origem for um objeto BitmapData).
Nota: O método drawWithQuality()
funciona exatamente como o método draw()
, mas em vez de usar a propriedade Stage.quality
para determinar a qualidade da renderização de vetor, você especifica o parâmetro quality
para o método drawWithQuality()
.
Esse método corresponde diretamente a como os objetos são desenhados com o renderizador de vetores padrão para objetos na interface da ferramenta de autoria.
O objeto de exibição de origem não usa nenhuma de suas transformações aplicadas para essa chamada. Ele é tratado como existente na biblioteca ou no arquivo, sem transformação de matriz, transformação de cor e modo de mesclagem. Para desenhar um objeto de exibição (como um clipe de filme) usando suas próprias propriedades de transformação, você pode copiar a propriedade transform
do objeto para a propriedade transform
do objeto Bitmap que usa o objeto BitmapData.
Este método é suportado pelo RTMP no Flash Player 9.0.115.0 e posterior e no Adobe AIR. Você pode controlar o acesso a fluxos no Flash Media Server em um script do lado do servidor. Para obter mais informações, consulte as propriedades Client.audioSampleAccess
e Client.videoSampleAccess
na Referência de lado do servidor do ActionScript para Adobe Flash Media Server.
Se o objeto de origem e (no caso de um objeto Sprite ou MovieClip) todos os seus objetos filhos não são provenientes do mesmo domínio do chamador ou não estão em um conteúdo acessível ao chamador depois que ele chamar o métodoSecurity.allowDomain()
, uma chamada para o drawWithQuality()
lança uma exceção de SecurityError. Esta restrição não se aplica ao conteúdo do AIR na área de segurança do aplicativo.
Também há restrições quanto ao uso de uma imagem bitmap carregada como source
. Uma chamada para o método drawWithQuality()
será bem-sucedida caso a imagem carregada esteja no mesmo domínio do chamador. Além disso, um arquivo de política em vários domínios no servidor da imagem pode conceder a permissão ao domínio do conteúdo SWF que chama o método drawWithQuality()
. Nesse caso, você deve definir a propriedade checkPolicyFile
de um objeto LoaderContext, além de usar esse objeto como o parâmetro context
durante a chamada do método load()
do objeto Loader usado para carregar a imagem. Essas restrições não se aplicam ao conteúdo do AIR na área de segurança do aplicativo.
No Windows, o método drawWithQuality()
não pode capturar o conteúdo SWF incorporado em uma página HTML em um objeto HTMLLoader no Adobe AIR.
O método drawWithQuality()
não pode capturar conteúdo PDF no Adobe AIR. Ele também não pode capturar ou incorporar conteúdo SWF em HTML em que o atributo wmode
é definido como "window"
no Adobe AIR.
Parâmetros
source:IBitmapDrawable — O objeto de exibição ou o objeto BitmapData a ser desenhado para o objeto BitmapData. (As classes DisplayObject e BitmapData implementam a interface IBitmapDrawable.)
| |
matrix:Matrix (default = null ) — Um objeto Matrix usado para dimensionar, girar ou converter as coordenadas do bitmap. Se você não quiser aplicar uma transformação de matriz à imagem, defina esse parâmetro como uma matriz de identidade, criada com o construtor new Matrix() padrão, ou transmita um valor null .
| |
colorTransform:flash.geom:ColorTransform (default = null ) — Um objeto ColorTransform que você usa para ajustar os valores de cor do bitmap. Se nenhum objeto for fornecido, as cores da imagem bitmap não serão transformadas. Se você precisar transmitir esse parâmetro, mas não quiser transformar a imagem, defina-o para um objeto ColorTransform criado com o construtor new ColorTransform() padrão.
| |
blendMode:String (default = null ) — Um valor de string, da classe flash.display.BlendMode, especificando o modo de mesclagem a ser aplicado ao bitmap resultante.
| |
clipRect:Rectangle (default = null ) — Um objeto Rectangle que define a área do objeto de origem a ser desenhado. Se você não fornecer esse valor, nenhum corte ocorrerá e o objeto de origem inteiro será desenhado.
| |
smoothing:Boolean (default = false ) — Um valor booliano que determina se um objeto BitmapData é suavizado quando dimensionado ou girado, devido a um dimensionamento ou giro no parâmetro matrix . O parâmetro suavização apenas será aplicável se o parâmetro origem for um objeto BitmapData. Com o parâmetro suavização definido como false , a imagem BitmapData dimensionada ou girada pode aparecer pixelizada ou irregular. Por exemplo, as duas imagens a seguir usam o mesmo objeto BitmapData para o parâmetro origem , mas o parâmetro suavização está definido como true à esquerda e como false à direita:
Desenhar um bitmap com o parâmetro | |
quality:String (default = null ) — Algum de um dos valores de StageQuality. Seleciona a qualidade de suavização de borada a ser usada ao desenhar gráficos de vetor.
|
Lança
ArgumentError — O parâmetro origem não é um objeto BitmapData ou DisplayObject.
| |
SecurityError — O objeto source e (no caso de um objeto Sprite ou MovieClip) todos os respectivos objetos-filho não são provenientes do mesmo domínio do chamador ou não estão em um conteúdo acessível ao chamador depois que ele chamar o método Security.allowDomain() . Esta restrição não se aplica ao conteúdo do AIR na área de segurança do aplicativo.
| |
ArgumentError — A origem é nula ou não é um objeto IBitmapDrawable válido.
|
Elementos da API relacionados
flash.display.StageQuality
flash.display.BlendMode
flash.geom.ColorTransform
flash.geom.Matrix
flash.system.JPEGLoaderContext
Exemplo ( Como usar este exemplo )
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.drawWithQuality(tf, , , , , , StageQuality.LOW); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
encode | () | método |
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 11.3, AIR 3.3 |
Compacta este objeto BitmapData usando o algoritmo de compactação selecionado e retorna um novo objeto ByteArray. Como alternativa, grava os dados resultantes na ByteArray especificada. O argumento compressor
especifica o algoritmo de codificação e pode ser PNGEncoderOptions, JPEGEncoderOptions, ou JPEGXREncoderOptions.
O exemplo a seguir compacta um objeto de BitmapData usando JPEGEncoderOptions:
// Compress a BitmapData object as a JPEG file. var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00); var byteArray:ByteArray = new ByteArray(); bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray);
Parâmetros
rect:Rectangle — A área do objeto BitmapData a ser compactada.
| |
compressor:Object — O tipo de compactador a ser usado. Os valores válidos são: flash.display.PNGEncoderOptions , flash.display.JPEGEncoderOptions e flash.display.JPEGXREncoderOptions .
| |
byteArray:ByteArray (default = null ) — A ByteArray de saída para manter a imagem codificada.
|
ByteArray — Uma ByteArray que contém a imagem codificada.
|
Elementos da API relacionados
fillRect | () | método |
public function fillRect(rect:Rectangle, color:uint):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Preenche uma área retangular de pixels com uma cor ARGB especificada.
Parâmetros
rect:Rectangle — A área retangular a ser preenchida.
| |
color:uint — O valor de cor ARGB que preenche a área. As cores ARGB são frequentemente especificadas em formato hexadecimal; por exemplo, 0xFF336699.
|
Lança
TypeError — O parâmetro ret é "null".
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Realiza uma operação de preenchimento em uma imagem, começando em uma coordenada (x, y) e preenchendo com uma certa cor. O método floodFill()
é semelhante à ferramenta lata de tinta em vários programas de pintura. A cor é uma cor ARGB que contém informações alfa e informações de cores.
Parâmetros
x:int — A coordenada x da imagem.
| |
y:int — A coordenada y da imagem.
| |
color:uint — A cor ARGB a ser usada como preenchimento.
|
Exemplo ( Como usar este exemplo )
(10, 10)
, no qual todas as cores correspondem à cor nesse ponto.
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Determina o retângulo de destino afetado pela chamada do método applyFilter()
, considerando um objeto BitmapData, um retângulo de origem e um objeto de filtro.
Por exemplo, um filtro de desfoque normalmente afeta uma área maior do que o tamanho da imagem original. Uma imagem de 100 x 200 pixels que está sendo filtrada por uma ocorrência de BlurFilter padrão, em que blurX = blurY = 4
gera um retângulo de destino de (-2,-2,104,204)
. O método generateFilterRect()
permite descobrir o tamanho desse retângulo de destino com antecedência, para que você possa dimensionar a imagem de destino apropriadamente antes de realizar uma operação de filtro.
Alguns filtros cortam seu retângulo de destino com base no tamanho da imagem de origem. Por exemplo, um filtro DropShadow
interno não gera um resultado maior do que sua imagem de origem. Nessa API, o objeto BitmapData é usado como os limites de origem e não o parâmetro ret
de origem.
Parâmetros
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
filter:BitmapFilter — O objeto de filtro que você usa para calcular o retângulo de destino.
|
Rectangle — Um retângulo de destino calculado com o uso de imagem, do parâmetro retOrigem e de um filtro.
|
Lança
TypeError — O parâmetro retOrigem ou filtro é "null".
|
Exemplo ( Como usar este exemplo )
generateFilterRect()
para determinar a área retangular que o resultado de um filtro de desfoque ocupará. Os resultados do método generateFilterRect()
são processados pela função 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()
não aplica o filtro. Chame o método applyFilter()
para aplicar o filtro.
getColorBoundsRect | () | método |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Determina uma região retangular que delimita totalmente todos os pixels de uma cor especificada dentro da imagem bitmap (se o parâmetro localizarCor
estiver definido como true
) ou que delimita totalmente todos os pixels que não incluem a cor especificada (se o parâmetro localizarCor
estiver definido como false
).
Por exemplo, se você tiver uma imagem de origem e quiser determinar o retângulo da imagem que contém um canal alfa diferente de zero, transmita {máscara: 0xFF000000, cor: 0x00000000}
como parâmetros. Se o parâmetro localizarCor
estiver definido como true
, a imagem inteira será pesquisada quanto aos limites de pixels para os quais (valor e máscara) == cor
(em que value
é o valor de cor do pixel). Se o parâmetro localizarCor
estiver definido como false
, a imagem inteira será pesquisada quanto aos limites de pixels para os quais (valor e máscara) != cor
(em que value
é o valor de cor do pixel). Para determinar o espaço em branco em torno de uma imagem, passe o {mask: 0xFFFFFFFF, cor: 0xFFFFFFFF}
para localizar os limites de pixels não brancos.
Parâmetros
mask:uint — Um valor hexadecimal que especifica os bits da cor ARGB a ser considerada. O valor da cor é combinado ao seu valor hexadecimal, usando o operador & (AND bit a bit).
| |
color:uint — Um valor hexadecimal que especifica a cor ARGB a ser correspondida (se localizarCor estiver definido como true ) ou não (se localizarCor estiver definido como false ).
| |
findColor:Boolean (default = true ) — Se o valor estiver definido como true , retornará os limites de um valor de cor em uma imagem. Se o valor estiver definido como false , retornará os limites dos pontos em que essa cor não existe em uma imagem.
|
Rectangle — A região da imagem que é a cor especificada.
|
Exemplo ( Como usar este exemplo )
getColorBoundsRect()
para determinar o retângulo no qual os pixels são vermelhos (0xFF0000) e então chama o mesmo método para determinar o retângulo no qual os pixels não são vermelhos (definindo o parâmetro localizarCor
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retorna um inteiro que representa um valor de pixel RGB a partir do objeto BitmapData em um ponto específico (x, y). O método getPixel()
retorna um valor de pixel não multiplicado. Nenhuma informação de alfa é retornada.
Todos os pixels em um objeto BitmapData são armazenados como valores de cor não multiplicados. Um pixel de imagem pré-multiplicado que tem os valores dos canais de cores de vermelho, verde e azul já multiplicados pelos dados alfa. Por exemplo, se o valor de alfa for 0, os valores para os canais RGB também serão 0, independentemente dos valores não multiplicados. Essa perda de dados poderá causar alguns problemas quando você realizar operações. Todos os métodos BitmapData usam e retornam valores não multiplicados. A representação de pixels internos é convertida de pré-multiplicada em não multiplicada antes de ser retornada como um valor. Durante uma operação de definição, o valor de pixel é pré-multiplicado antes de o pixel de imagem bruto ser definido.
Parâmetros
x:int — A posição x do pixel.
| |
y:int — A posição y do pixel.
|
uint — Um número que representa um valor de pixel RGB. Se as coordenadas (x, y) estiverem fora dos limites da imagem, o método retornará 0.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
getPixel()
para determinar o valor de cor no pixel superior esquerdo:
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32 | () | método |
public function getPixel32(x:int, y:int):uint
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Retorna um valor de cor ARGB que contém dados de canais alfa e dados RGB. Esse método é semelhante ao método getPixel()
, que retorna uma cor RGB sem dados de canais alfa.
Todos os pixels em um objeto BitmapData são armazenados como valores de cor não multiplicados. Um pixel de imagem pré-multiplicado que tem os valores dos canais de cores de vermelho, verde e azul já multiplicados pelos dados alfa. Por exemplo, se o valor de alfa for 0, os valores para os canais RGB também serão 0, independentemente dos valores não multiplicados. Essa perda de dados poderá causar alguns problemas quando você realizar operações. Todos os métodos BitmapData usam e retornam valores não multiplicados. A representação de pixels internos é convertida de pré-multiplicada em não multiplicada antes de ser retornada como um valor. Durante uma operação de definição, o valor de pixel é pré-multiplicado antes de o pixel de imagem bruto ser definido.
Parâmetros
x:int — A posição x do pixel.
| |
y:int — A posição y do pixel.
|
uint — Um número que representa um valor de pixel ARGB. Se as coordenadas (x, y) estiverem fora dos limites da imagem, 0 será retornado.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
getPixel32()
para determinar o valor da cor no pixel superior esquerdo e, em seguida, determina os valores hexadecimais para cada componente de cor (alfa, vermelho, verde e azul):
import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixels | () | método |
public function getPixels(rect:Rectangle):ByteArray
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Gera uma matriz de bytes a partir de uma região retangular dos dados de pixels. Grava um inteiro não sem sinal (um valor de pixel não multiplicado de 32 bits) para cada pixel na matriz de bytes.
Parâmetros
rect:Rectangle — Uma área retangular no objeto BitmapData atual.
|
ByteArray — Um ByteArray representando os pixels no Retângulo especificado.
|
Lança
TypeError — O parâmetro ret é "null".
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
getPixels()
para preencher um objeto ByteArray com os valores de pixel do objeto BitmapData
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds);
getVector | () | método |
public function getVector(rect:Rectangle):Vector.<uint>
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gera uma matriz de vetores a partir de uma região retangular dos dados de pixel. Retorna um objeto Vector de inteiros não assinados (um valor de pixel não multiplicado de 32 bits) para o retângulo especificado.
Parâmetros
rect:Rectangle — Uma área retangular no objeto BitmapData atual.
|
Vector.<uint> — Vector representa determinado Rectangle.
|
Lança
TypeError — O parâmetro ret é "null".
|
histogram | () | método |
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Calcula um histograma de número binário de valor 256 de um objeto BitmapData. Esse método retorna um objeto Vector contendo quatro ocorrências de Vector.<Number> (quatro objetos Vector que contêm objetos Number). As quatro ocorrências de Vector representam os componentes vermelho, verde, azul e alfa, respectivamente. Cada ocorrência de Vector contém 256 valores que representam a contagem de preenchimento do valor de componente individual, de 0 a 255.
Parâmetros
hRect:Rectangle (default = null ) — A área do objeto BitmapData a ser usada.
|
Vector.<Vector.<Number>> |
hitTest | () | método |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Realiza a detecção de ocorrências em nível de pixels entre uma imagem bitmap e um ponto, um retângulo ou outra imagem bitmap. Uma ocorrência é definida como uma sobreposição de um ponto ou retângulo sobre um pixel opaco, ou dois pixels opacos de sobreposição. Nenhuma operação de estiramento, giro ou outra transformação de qualquer objeto será considerada quando o teste de ocorrência for realizado.
Se uma imagem for opaca, ela será considerada um retângulo totalmente opaco para esse método. Ambas as imagens devem ser transparentes para realizar um teste de ocorrência em nível de pixels que considere a transparência. Quando você testa duas imagens transparentes, os parâmetros de limite de alfa controlam quais valores de canais alfa, de 0 a 255, são considerados opacos.
Parâmetros
firstPoint:Point — Uma posição do canto superior esquerdo da imagem BitmapData em um espaço de coordenadas arbitrário. O mesmo espaço de coordenadas é usado na definição do parâmetro secondPointBitmap .
| |
firstAlphaThreshold:uint — O valor de canal alfa mais baixo considerado opaco para esse teste de ocorrência.
| |
secondObject:Object — Um objeto Rectangle, Point, Bitmap ou BitmapData.
| |
secondBitmapDataPoint:Point (default = null ) — Um ponto que define uma localização de pixel no segundo objeto BitmapData. Use esse parâmetro apenas quando o valor de secondObject for um objeto BitmapData.
| |
secondAlphaThreshold:uint (default = 1 ) — O valor de canal alfa mais baixo considerado opaco no segundo objeto BitmapData. Use esse parâmetro apenas quando o valor de secondObject for um objeto BitmapData e quando ambos os objetos BitmapData forem transparentes.
|
Boolean — Um valor de true se ocorrer uma ocorrência; caso contrário, false .
|
Lança
ArgumentError — O parâmetro secondObject não é um objeto Point, Rectangle, Bitmap ou BitmapData.
| |
TypeError — O parâmetro primeiroPonto é "null".
|
Exemplo ( Como usar este exemplo )
hitTest()
com um objeto Point como o secondObject
. Na primeira chamada, o objeto Point define o canto superior esquerdo do objeto BitmapData, que não é opaco, e, na segunda chamada, o objeto Point define o centro do objeto BitmapData, que é 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Bloqueia uma imagem de forma que qualquer objeto que faça referência ao objeto BitmapData, como objetos Bitmap, não seja atualizado quando esse objeto BitmapData for alterado. Para melhorar o desempenho, use esse método junto com o método unlock()
antes e depois de várias chamadas ao método setPixel()
ou setPixel32()
.
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
bitmapData
de um objeto Bitmap, picture
. Em seguida, ele chama o método lock()
antes de chamar uma função personalizada complicada, complexTransformation()
, que modifica o objeto BitmapData. (O objeto picture
e a função complexTransformation()
não são definidas neste exemplo.) Mesmo que a função complexTransformation()
atualize a propriedade bitmapData
do objeto picture
, as alterações apenas serão refletidas quando o código chamar o método unlock()
no 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Realiza a mesclagem por canal a partir de uma imagem de origem para uma imagem de destino. Para cada canal e cada pixel, um novo valor é calculado com base nos valores de canal dos pixels de origem e destino. Por exemplo, no canal de vermelho, o novo valor é calculado da seguinte maneira (em que redSrc
é o valor do canal de vermelho para um pixel na imagem de origem e redDest
é o valor do canal de vermelho no pixel correspondente da imagem de destino):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
Os valores de redMultiplier
, greenMultiplier
, blueMultiplier
e alphaMultiplier
são os multiplicadores usados para cada canal de cor. Use um valor hexadecimal que varia de 0
a 0x100
(256), em que 0
especifica que o valor total a partir do destino é usado no resultado, 0x100
especifica que o valor total a partir da origem é usado e os números intermediários especificam que uma mesclagem é usada (como 0x80
para 50%).
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência ao objeto BitmapData atual.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O ponto na imagem de destino (a ocorrência atual de BitmapData) que corresponde ao canto superior esquerdo do retângulo de origem.
| |
redMultiplier:uint — Um valor uint hexadecimal pelo qual multiplicar o valor do canal de vermelho.
| |
greenMultiplier:uint — Um valor uint hexadecimal pelo qual multiplicar o valor do canal de verde.
| |
blueMultiplier:uint — Um valor uint hexadecimal pelo qual multiplicar o valor do canal de azul.
| |
alphaMultiplier:uint — Um valor uint hexadecimal pelo qual multiplicar o valor da transparência alfa.
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem ou pontoDest são "null".
|
Exemplo ( Como usar este exemplo )
merge()
, mesclando os pixels do segundo BitmapData no primeiro objeto BitmapData, mas apenas em uma área retangular 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Preenche uma imagem com pixels que representam ruído aleatório.
Parâmetros
randomSeed:int — O número base aleatório a ser usado. Se você mantiver todos os outros parâmetros iguais, poderá gerar diferentes resultados pseudoaleatórios variando o valor base aleatório. A função de ruído é uma função de mapeamento e não uma função real de geração de números aleatórios. Sendo assim, ela cria os mesmos resultados todas as vezes a partir da mesma base aleatória.
| |
low:uint (default = 0 ) — O valor mais baixo a ser gerado para cada canal (0 a 255).
| |
high:uint (default = 255 ) — O valor mais alto a ser gerado para cada canal (0 a 255).
| |
channelOptions:uint (default = 7 ) — Um número que pode ser uma combinação de qualquer dos quatro valores de canais de cor (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA ). É possível usar o operador OR lógico (| ) para combinar valores de canal.
| |
grayScale:Boolean (default = false ) — Um valor booliano. Se o valor for true , uma imagem em tons de cinza será criada ao definir todos os canais de cor como o mesmo valor. A seleção do canal alfa não é afetada pela definição desse parâmetro como true .
|
Elementos da API relacionados
flash.display.BitmapDataChannel.BLUE
flash.display.BitmapDataChannel.GREEN
flash.display.BitmapDataChannel.ALPHA
Exemplo ( Como usar este exemplo )
noise()
em ambos: Entretanto, o parâmetro tonscinza
está definido como false
para a chamada ao método noise()
do primeiro objeto e está definido como true
para a chamada ao método noise()
do 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Remapeia os valores dos canais de cor em uma imagem que possui até quatro matrizes de dados de paleta de cores, uma para cada canal.
O tempo de execução do Flash usa as etapas a seguir para gerar a imagem resultante:
- Após o cálculo dos valores de vermelho, verde, azul e alfa, eles são somados com o uso da aritmética padrão de inteiros de 32 bits.
- Os valores dos canais de vermelho, verde, azul e alfa de cada pixel são extraídos em valores separados de 0 a 255. Esses valores são usados para procurar novos valores de cores na matriz apropriada:
redArray
,greenArray
,blueArray
ealphaArray
. Cada uma dessas quatro matrizes deve conter 256 valores. - Após a recuperação de todos os quatro novos valores de canal, eles serão combinados em um valor ARGB padrão que é aplicado ao pixel.
Efeitos entre canais podem ser suportados com esse método. Cada matriz de entrada pode conter valores completos de 32 bits e não haverá deslocamentos quando os valores forem somados. Essa rotina não oferece suporte à fixação por canal.
Se nenhuma matriz for especificada para um canal, o canal de cor será copiado da imagem de origem para a imagem de destino.
Você pode usar esse método para uma variedade de efeitos, como mapeamento geral de paletas (usando um canal e convertendo-o em uma imagem colorida falsa). Esse método também pode ser usado para vários algoritmos avançados de manipulação de cores, como gama, curvas, níveis e quantização.
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência à ocorrência atual de BitmapData.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O ponto na imagem de destino (o objeto BitmapData atual) que corresponde ao canto superior esquerdo do retângulo de origem.
| |
redArray:Array (default = null ) — Se redArray não for null , red = redArray[source red value] else red = source rect value .
| |
greenArray:Array (default = null ) — Se greenArray não for null , green = greenArray[source green value] else green = source green value.
| |
blueArray:Array (default = null ) — Se blueArray não for null , blue = blueArray[source blue value] else blue = source blue value .
| |
alphaArray:Array (default = null ) — Se alphaArray não for null , alpha = alphaArray[source alpha value] else alpha = source alpha value .
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem ou pontoDest são "null".
|
Exemplo ( Como usar este exemplo )
paletteMap()
para alternar o vermelho com o verde na metade retangular inferior do 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Gera uma imagem de ruído Perlin.
O algoritmo de geração de ruído Perlin interpola e combina funções individuais de ruído aleatório (chamadas de oitavas) em uma única função que gera ruído aleatório com aparência mais natural. Como oitavas musicais, cada função de oitava é duas vezes a frequência da anterior. O ruído Perlin foi descrito como uma "soma fractal de ruído" porque combina vários conjuntos de dados de ruído com diferentes camadas de detalhe.
Você pode usar funções de ruído Perlin para simular paisagens e fenômenos naturais, como fibras de madeira, nuvens e cadeias de montanha. Na maioria dos casos, a saída de uma função de ruído Perlin não é exibida diretamente, mas é usada para melhorar outras imagens e lhes dar variações pseudoaleatórias.
Funções de ruído aleatório digital simples frequentemente produzem imagens com pontos ásperos contrastantes. Em geral, esse tipo de contraste áspero não é encontrado em essência. O algoritmo de ruído Perlin mescla várias funções de ruído que operam em diferentes níveis de detalhes. Esse algoritmo resulta em variações menores entre os valores de pixels vizinhos.
Parâmetros
baseX:Number — A frequência a ser usada na direção x. Por exemplo, para gerar um ruído dimensionado para uma imagem de 64 x 128, transmita 64 para o valor baseX .
| |
baseY:Number — A frequência a ser usada na direção y. Por exemplo, para gerar um ruído dimensionado para uma imagem de 64 x 128, transmita 128 para o valor baseY .
| |
numOctaves:uint — Número de oitavas ou funções de ruído individuais a serem combinadas para criar esse ruído. Números maiores de oitavas criam imagens com mais detalhes. Números maiores de oitavas também exigem mais tempo de processamento.
| |
randomSeed:int — O número base aleatório a ser usado. Se você mantiver todos os outros parâmetros iguais, poderá gerar diferentes resultados pseudoaleatórios variando o valor base aleatório. A função de ruído Perlin é uma função de mapeamento e não uma função real de geração de números aleatórios. Sendo assim, ela cria os mesmos resultados todas as vezes a partir da mesma base aleatória.
| |
stitch:Boolean — Um valor booliano. Se o valor for true , o método tentará suavizar as bordas de transição da imagem para criar texturas contínuas para colocação lado a lado como um preenchimento de gradiente.
| |
fractalNoise:Boolean — Um valor booliano. Se o valor for true , o método gerará ruído fractal; caso contrário, gerará turbulência. Uma imagem com turbulência tem descontinuidades visíveis no gradiente que podem fazer com que ela aproxime melhor os efeitos visuais mais nítidos, como chamas e ondas do mar.
| |
channelOptions:uint (default = 7 ) — Um número que pode ser uma combinação de qualquer dos quatro valores de canais de cor (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA ). É possível usar o operador OR lógico (| ) para combinar valores de canal.
| |
grayScale:Boolean (default = false ) — Um valor booliano. Se o valor for true , uma imagem em tons de cinza será criada ao definir cada um dos canais de cor de vermelho, verde e azul como valores idênticos. O valor do canal alfa não será afetado se esse valor for definido como true .
| |
offsets:Array (default = null ) — Uma matriz de pontos que correspondem a deslocamentos x e y para cada oitava. Ao manipular os valores de deslocamento, você pode rolar suavemente as camadas de uma imagem perlinNoise. Cada ponto na matriz de deslocamento afeta uma função de ruído de oitava específica.
|
Exemplo ( Como usar este exemplo )
perlinNoise()
para gerar um efeito de aquarela em vermelho e 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Realiza uma operação de dissolver pixels a partir de uma imagem de origem para uma imagem de destino ou usando a mesma imagem. O tempo de execução do Flash usa um valor randomSeed
para gerar uma dissolução de pixels aleatória. O valor de retorno da função deve ser transmitido em chamadas subsequentes para continuar a dissolução de pixels até ela terminar.
Se a imagem de origem não for igual à de destino, os pixels serão copiados da origem para o destino usando todas as propriedades. Esse processo permite a dissolução de uma imagem branca em uma imagem totalmente preenchida.
Se as imagens de origem e destino forem iguais, os pixels serão preenchidos com o parâmetro cor
. Esse processo permite a dissolução a partir de uma imagem totalmente preenchida. Nesse modo, o parâmetro ponto
de destino é ignorado.
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência à ocorrência atual de BitmapData.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O ponto na imagem de destino (a ocorrência atual de BitmapData) que corresponde ao canto superior esquerdo do retângulo de origem.
| |
randomSeed:int (default = 0 ) — A base aleatória a ser usada para iniciar a dissolução de pixels.
| |
numPixels:int (default = 0 ) — O padrão é 1/30 da área de origem (largura x altura).
| |
fillColor:uint (default = 0 ) — Um valor de cor ARGB que é usado para preencher pixels cujo valor de origem seja igual ao seu valor de destino.
|
int — O novo valor base aleatório a ser usado para chamadas subsequentes.
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem ou pontoDest são "null".
| |
TypeError — O valor de numPixels é negativo
|
Exemplo ( Como usar este exemplo )
pixelDissolve()
para converter um objeto BitmapData cinza em um vermelho dissolvendo 40 pixels de uma vez até que todos os pixels tenham mudado de cor:
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Rola uma imagem em uma certa quantidade de pixels (x, y). As regiões de borda fora da área de rolagem são inalteradas.
Parâmetros
x:int — A intensidade na qual rolar horizontalmente.
| |
y:int — A intensidade na qual rolar verticalmente.
|
Exemplo ( Como usar este exemplo )
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Define um único pixel de um objeto BitmapData. O valor do canal alfa atual do pixel de imagem é preservado durante essa operação. O valor do parâmetro de cor RGB é tratado como um valor de cor não multiplicado.
Observação: Para aumentar o desempenho, ao usar o método setPixel()
ou setPixel32()
repetidamente, chame o método lock()
antes de chamar o método setPixel()
ou setPixel32()
e então chame o método unlock()
quando tiver feito todas as alterações de pixel. Esse processo impede que os objetos que fazem referência a essa ocorrência de BitmapData sejam atualizados até você terminar de fazer as alterações de pixel.
Parâmetros
x:int — A posição x do pixel cujo valor é alterado.
| |
y:int — A posição y do pixel cujo valor é alterado.
| |
color:uint — A cor RGB resultante para o pixel.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
setPixel()
para desenhar uma linha vermelha em um 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Define os valores de cor e transparência alfa de um único pixel de um objeto BitmapData. Esse método é semelhante ao método setPixel()
; a principal diferença é que o método setPixel32()
usa um valor de cor ARGB que contém informações de canais alfa.
Todos os pixels em um objeto BitmapData são armazenados como valores de cor não multiplicados. Um pixel de imagem pré-multiplicado que tem os valores dos canais de cores de vermelho, verde e azul já multiplicados pelos dados alfa. Por exemplo, se o valor de alfa for 0, os valores para os canais RGB também serão 0, independentemente dos valores não multiplicados. Essa perda de dados poderá causar alguns problemas quando você realizar operações. Todos os métodos BitmapData usam e retornam valores não multiplicados. A representação de pixels internos é convertida de pré-multiplicada em não multiplicada antes de ser retornada como um valor. Durante uma operação de definição, o valor de pixel é pré-multiplicado antes de o pixel de imagem bruto ser definido.
Observação: Para aumentar o desempenho, ao usar o método setPixel()
ou setPixel32()
repetidamente, chame o método lock()
antes de chamar o método setPixel()
ou setPixel32()
e então chame o método unlock()
quando tiver feito todas as alterações de pixel. Esse processo impede que os objetos que fazem referência a essa ocorrência de BitmapData sejam atualizados até você terminar de fazer as alterações de pixel.
Parâmetros
x:int — A posição x do pixel cujo valor é alterado.
| |
y:int — A posição y do pixel cujo valor é alterado.
| |
color:uint — A cor ARGB resultante para o pixel. Se o bitmap for opaco (não transparente), a parte da transparência alfa desse valor de cor será ignorada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
setPixel32()
para desenhar uma linha vermelha transparente (alfa == 0x60) em um 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Converte uma matriz de bytes em uma região retangular de dados de pixels. Para cada pixel, o método ByteArray.readUnsignedInt()
é chamada e o valor de retorno é gravado no pixel. Se a matriz de bytes terminar antes da gravação de todo o retângulo, a função será retornada. Espera-se que os dados na matriz de bytes sejam valores de pixels ARGB de 32 bits. Nenhuma busca é realizada na matriz de bytes antes ou após a leitura dos pixels.
Parâmetros
rect:Rectangle — Especifica a região retangular do objeto BitmapData.
| |
inputByteArray:ByteArray — Um objeto ByteArray que consistem em valores de pixels não multiplicados de 32 bits a serem usados na região retangular.
|
Lança
EOFError — O objeto inputByteArray não inclui dados suficientes para preencher a área do retângulo rect . O método preenche a maior quantidade possível de pixels antes de lançar a exceção.
| |
TypeError — O parâmetro ret ou matrizBytesEntrada é "null".
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
getPixels()
e setPixels()
para copiar pixels de um objeto BitmapData para outro:
import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
setVector | () | método |
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Converte um Vector em uma região retangular de dados de pixels. Para cada pixel, um elemento de Vector é lido e gravado no pixel BitmapData. Espera-se que os dados no Vector sejam valores de pixels ARGB de 32 bits.
Parâmetros
rect:Rectangle — Especifica a região retangular do objeto BitmapData.
| |
inputVector:Vector.<uint> — Um objeto Vector que consistem em valores de pixels não multiplicados de 32 bits a serem usados na região retangular.
|
Lança
RangeError — A matriz de vetor não é grande o suficiente para ler todos os dados de pixel.
|
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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Testa valores de pixels em uma imagem com base em um limite especificado e define os pixels aprovados no texto como novos valores de cor. Usando o método threshold()
, você pode isolar e substituir faixas de cores em uma imagem e realizar outras operações lógicas em pixels de imagens.
A lógica de teste do método threshold()
é a seguinte:
- Se
((valorPixel e máscara) operação (limite e máscara))
, defina o pixel comocor
; - Caso contrário, se
copiarOrigem == true
, defina o pixel como o valor de pixel correspondente a partir debitmapOrigem
.
O parâmetro operação
especifica o operador de comparação a ser usado para o teste de limite. Por exemplo, usando "==" como o parâmetro operação
, você pode isolar um valor de cor específico em uma imagem. Ou usando o {operação: "<", máscara: 0xFF000000, limite: 0x7F000000, cor: 0x00000000}
, é possível definir todos os pixels de destino de forma que eles sejam totalmente transparentes quando o alfa da imagem de origem for menor do que 0x7F. Essa técnica pode ser usada para transições animadas e outros efeitos.
Parâmetros
sourceBitmapData:BitmapData — A imagem bitmap de entrada a ser usada. A imagem de origem pode ser um objeto BitmapData diferente ou pode fazer referência à ocorrência atual de BitmapData.
| |
sourceRect:Rectangle — Um retângulo que define a área da imagem de origem a ser usada como entrada.
| |
destPoint:Point — O ponto na imagem de destino (a ocorrência atual de BitmapData) que corresponde ao canto superior esquerdo do retângulo de origem.
| |
operation:String — Um dos seguintes operadores de comparação, transmitidos como uma String: "<", "<=", ">", ">=", "==", "!="
| |
threshold:uint — O valor com base no qual cada pixel é testado para ver se ele atende ou excede o limite.
| |
color:uint (default = 0 ) — O valor de cor para o qual um pixel será definido se o teste de limite for bem-sucedido. O valor padrão é 0x00000000.
| |
mask:uint (default = 0xFFFFFFFF ) — A máscara a ser usada para isolar um componente de cor.
| |
copySource:Boolean (default = false ) — Se o valor for true , os valores de pixel da imagem de origem serão copiados para o destino quando o teste de limite falhar. Se o valor for false , a imagem de origem não será copiada quando o teste de limite falhar.
|
uint — O número de pixels que foram alterados.
|
Lança
TypeError — Os parâmetros dadosBitmapOrigem, retOrigem, pontoDest ou operação são "null".
| |
ArgumentError — A string de operação não é uma operação válida
|
Exemplo ( Como usar este exemplo )
perlinNoise()
para adicionar um padrão de azul e vermelho a um objeto BitmapData e usa o método threshold()
para copiar esses pixels do primeiro objeto BitmapData para um segundo objeto, substituindo os pixels nos quais o valor de vermelho é maior do que 0x80 (50%) por um pixel definido como vermelho 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 9, AIR 1.0 |
Desbloqueia uma imagem de forma que qualquer objeto que faça referência ao objeto BitmapData, como objetos Bitmap, seja atualizado quando esse objeto BitmapData for alterado. Para melhorar o desempenho, use esse método junto com o método lock()
antes e depois de várias chamadas ao método setPixel()
ou setPixel32()
.
Parâmetros
changeRect:Rectangle (default = null ) — A área do objeto BitmapData que foi alterada. Se você não especificar um valor para esse parâmetro, a área inteira do objeto BitmapData será considerada alterada. Este parâmetro exige o Flash Player versão 9.0.115.0 ou posterior.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
bitmapData
de um objeto Bitmap, picture
. Em seguida, ele chama o método lock()
antes de chamar uma função personalizada complicada, complexTransformation()
, que modifica o objeto BitmapData. (O objeto picture
e a função complexTransformation()
não são definidas neste exemplo.) Mesmo que a função complexTransformation()
atualize a propriedade bitmapData
do objeto picture
, as alterações apenas serão refletidas quando o código chamar o método unlock()
no objeto bitmapData
:
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold()
. A tarefa é concluída com as seguintes etapas:
- Uma propriedade
url
é criada, representando a localização e o nome do arquivo de imagem - O construtor da classe cria um objeto Loader, que então instancia um ouvinte de evento que é despachado quando o método
completeHandler()
completa a manipulação da imagem. - O objeto URLRequest
request
é transmitido aloader.load()
, que carrega a imagem na memória usando um objeto de exibição. - A imagem é então inserida na lista de exibição, que a exibe nas coordenadas x = 0, y = 0 da tela.
- O método
completeHandler()
realiza as seguintes tarefas:- Cria um segundo Loader, junto com um objeto Bitmap, que é inicializado com o objeto Loader.
- Cria um segundo objeto Bitmap,
duplicate
, que, por sua vez, chama o métododuplicateImage()
, que cria uma duplicata da imagem original. - Cria um objeto BitmapData, que é atribuído ao objeto BitmapData do objeto
duplicate
. - Cria um novo objeto Rectangle inicializado com as mesmas coordenadas, largura e altura que a imagem original.
- Cria um novo objeto Point, que assume como padrão x = 0, y = 0.
- Cria as seguintes variáveis:
operation
– Aplica a nova cor quando o valor de limite é maior do que ou igual ao original.threshold
– O valor com base no qual cada pixel é comparado (neste exemplo, cinza-claro com um alfa de 0xCC).color
– A cor com a qual serão definidos os pixels que passarem no teste de limite, que é amarelo sólido nesse caso.mask
– O oposto exato da cor (azul transparente).copySource
– Defina comofalse
, indicando que os valores de pixel não serão copiados se o valor de limite não passar no teste. Esse valor não tem significado, já que a imagem é duplicada e somente os pixels que passarem no teste de limite serão alterados.
- Chama o método
threshold()
usando as variáveis anteriores. A equação de limite resultante é a seguinte:se (Valor de pixel atual & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) defina o pixel como 0xFFFFFF00
.
Observações:
- Será necessário compilar o arquivo SWF com a Segurança de reprodução local definida como Acessar somente arquivos locais.
- Esse exemplo requer que um arquivo denominado Image.gif seja inserido no mesmo diretório que o seu arquivo SWF.
- Convém usar uma imagem com aproximadamente até 80 pixels de largura.
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); } } }
Wed Jun 13 2018, 11:10 AM Z