Guida di riferimento di ActionScript® 3.0 per la piattaforma Adobe® Flash®
Home  |  Nascondi elenco pacchetti e classi |  Pacchetti  |  Classi  |  Novità  |  Indice  |  Appendici  |  Perché in inglese?
Filtri: AIR 30.0 e versioni precedenti, Flash Player 30.0 e versioni precedenti, Flash Lite 4
Flex 4.6 e versioni precedenti, Flash Pro CS6 e versioni precedenti
Nascondi filtri
flash.display 

BitmapData  - AS3

Pacchettix

Primo livello
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementi del linguaggio

Costanti globali
Funzioni globali
Operatori
Istruzioni, parole chiave e direttive
Tipi speciali

Appendici

Novità
Errori del compilatore
Avvisi del compilatore
Errori runtime
Migrazione a ActionScript 3
Set di caratteri supportati
Tag solo di MXML
Elementi XML di Motion
Tag Timed Text
Elenco degli elementi obsoleti
Costanti di implementazione dell’accessibilità
Utilizzare gli esempi ActionScript
Note legali
Pacchettoflash.display
Classepublic class BitmapData
EreditarietàBitmapData Inheritance Object
Implementa IBitmapDrawable

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

La classe BitmapData consente di eseguire operazioni con i dati (pixel) di un oggetto Bitmap. È possibile utilizzare i metodi della classe BitmapData per creare delle immagini bitmap trasparenti e opache con dimensioni arbitrarie e manipolarle in vari modi in fase di runtime. È anche possibile accedere ai dati bitmap di un'immagine bitmap caricata mediante la classe flash.display.Loader.

Questa classe consente di separare le operazioni di rendering bitmap dalle routine interne di aggiornamento della visualizzazione di Flash Player. Manipolando direttamente un oggetto BitmapData potete creare immagini complesse senza la necessità di ridisegnare costantemente il contenuto per ogni fotogramma partendo dai dati vettoriali.

I metodi della classe BitmapData supportano vari effetti che non sono disponibili tramite i filtri applicabili agli oggetti di visualizzazione non bitmap.

Un oggetto BitmapData contiene un array di dati pixel. Questi dati possono rappresentare un'immagine bitmap completamente opaca o un'immagine bitmap trasparente contenente dati per il canale alfa. Entrambi i tipi di oggetto BitmapData sono memorizzati sotto forma di buffer di numeri interi a 32 bit. Ogni numero intero a 32 bit determina le proprietà di un singolo pixel nell'immagine bitmap.

Ogni numero intero a 32 bit è una combinazione di quattro valori "canale" a 8 bit (da 0 a 255) che descrivono i valori per la trasparenza alfa e per il rosso, il verde e il blu (ARGB) del pixel. Per i valori ARGB, il byte più significativo rappresenta il valore del canale alfa, seguito da rosso, verde e blu.

I quattro canali (alfa, rosso, verde e blu) vengono rappresentati come numeri se utilizzati con il metodo BitmapData.copyChannel() o le proprietà DisplacementMapFilter.componentX e DisplacementMapFilter.componentY, e tali numeri sono rappresentati dalle seguenti costanti nella classe BitmapDataChannel:

  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE

Gli oggetti BitmapData possono essere associati a un oggetto Bitmap mediante la proprietà bitmapData dell'oggetto Bitmap.

È possibile utilizzare un oggetto BitmapData per riempire un oggetto Graphics mediante il metodo Graphics.beginBitmapFill().

Nel runtime di AIR, le classi DockIcon, Icon, InteractiveIcon e SystemTrayIcon includono ciascuna una proprietà bitmaps che è costituita da un array di oggetti BitmapData che definiscono le immagini bitmap di un'icona.

In AIR 1.5 e Flash Player 10, la dimensione massima di un oggetto BitmapData è di 8.191 pixel in larghezza o altezza, mentre il numero totale di pixel non può essere superiore a 16.777.215. (Quindi, se un oggetto BitmapData ha una larghezza di 8.191 pixel, può avere solo una lunghezza di 2.048 pixel.) In Flash Player 9 e versioni precedenti e in AIR 1.1 e versioni precedenti, la limitazione è di 2.880 pixel in altezza e 2.880 pixel in larghezza.

A partire da AIR 3 e Flash Player 11, i limiti di dimensioni per un oggetto BitmapData sono stati rimossi. La dimensione massima di una bitmap ora dipende dal sistema operativo.

Le chiamate a qualunque metodo o proprietà di un oggetto BitmapData generano un errore ArgumentError se l'oggetto BitmapData non è valido (ad esempio, se contiene height == 0 e width == 0) oppure se è stato eliminato con il metodo dispose().

Vedere gli esempi

Altri esempi

Altre informazioni

Elementi API correlati



Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  height : int
[sola lettura] L'altezza dell'immagine bitmap, espressa in pixel.
BitmapData
  rect : Rectangle
[sola lettura] Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap.
BitmapData
  transparent : Boolean
[sola lettura] Indica se l'immagine bitmap supporta la trasparenza per pixel.
BitmapData
  width : int
[sola lettura] La larghezza dell'immagine bitmap, espressa in pixel.
BitmapData
Metodi pubblici
 MetodoDefinito da
  
BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza.
BitmapData
  
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Usa un'immagine di origine e un oggetto filtro per generare l'immagine filtrata.
BitmapData
  
Restituisce un nuovo oggetto BitmapData che è un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta.
BitmapData
  
Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform.
BitmapData
  
compare(otherBitmapData:BitmapData):Object
Confronta due oggetti BitmapData.
BitmapData
  
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente.
BitmapData
  
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore.
BitmapData
  
Riempie un array di byte da un’area rettangolare di dati pixel.
BitmapData
  
Libera la memoria utilizzata per memorizzare l'oggetto BitmapData.
BitmapData
  
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Disegna l'oggetto di visualizzazione source sull'immagine bitmap utilizzando il renderer di vettori del runtime 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
Disegna l'oggetto di visualizzazione source sull'immagine bitmap utilizzando il renderer di vettori del runtime Flash.
BitmapData
  
encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
Comprime questo oggetto BitmapData utilizzando l’algoritmo di compressione selezionato e restituisce un nuovo oggetto ByteArray.
BitmapData
  
Riempie un'area rettangolare di pixel con un determinato colore ARGB.
BitmapData
  
floodFill(x:int, y:int, color:uint):void
Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e applicando un riempimento di un determinato colore.
BitmapData
  
Determina il rettangolo di destinazione su cui agisce la chiamata al metodo applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filtro.
BitmapData
  
getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap (se il parametro findColor è impostato su true) oppure che racchiude completamente tutti i pixel che non includono il colore specificato (se findColor è false).
BitmapData
  
Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y).
BitmapData
  
Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB.
BitmapData
  
Genera un array di byte da un'area rettangolare di dati pixel.
BitmapData
  
Genera un array Vector da un'area rettangolare di dati pixel.
BitmapData
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
  
Calcola un istogramma di numeri binari con 256 valori di un oggetto BitmapData.
BitmapData
  
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap.
BitmapData
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
Blocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, non vengano aggiornati quando questo oggetto BitmapData viene modificato.
BitmapData
  
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione.
BitmapData
  
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Riempie un'immagine con pixel che rappresentano disturbi a caso.
BitmapData
  
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale.
BitmapData
  
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Genera un'immagine di disturbo Perlin.
BitmapData
  
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine.
BitmapData
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
  
Scorre un'immagine di una certa quantità di pixel (x, y).
BitmapData
  
setPixel(x:int, y:int, color:uint):void
Imposta un singolo pixel di un oggetto BitmapData.
BitmapData
  
setPixel32(x:int, y:int, color:uint):void
Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData.
BitmapData
  
setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Converte un array di byte in un'area rettangolare di dati pixel.
BitmapData
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
  
setVector(rect:Rectangle, inputVector:Vector.<uint>):void
Converte un vettore in un'area rettangolare di dati pixel.
BitmapData
  
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Prova i valori in pixel di un'immagine in base a una soglia specificata e imposta i pixel che superano la prova a nuovi valori di colore.
BitmapData
 Inherited
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
  
unlock(changeRect:Rectangle = null):void
Sblocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, vengano aggiornati quando questo oggetto BitmapData viene modificato.
BitmapData
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione delle proprietà

height

proprietà
height:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

L'altezza dell'immagine bitmap, espressa in pixel.



Implementazione
    public function get height():int

rect

proprietà 
rect:Rectangle  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. La parte superiore e sinistra del rettangolo hanno valore zero; la larghezza e l'altezza sono uguali alla larghezza e all'altezza espresse in pixel dell'oggetto BitmapData.



Implementazione
    public function get rect():Rectangle

transparent

proprietà 
transparent:Boolean  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Indica se l'immagine bitmap supporta la trasparenza per pixel. Potete impostare questo valore solo quando create un oggetto BitmapData passando true per il parametro transparent della funzione di costruzione. Quindi, dopo aver creato un oggetto BitmapData, potete controllare se supporta la trasparenza per pixel verificando se il valore della proprietà transparent è true.



Implementazione
    public function get transparent():Boolean

width

proprietà 
width:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

La larghezza dell'immagine bitmap, espressa in pixel.



Implementazione
    public function get width():int
Descrizione della funzione di costruzione

BitmapData

()Funzione di costruzione
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza. Se specificate un valore del parametro fillColor, ogni pixel nella bitmap viene impostato su tale colore.

Per impostazione predefinita, l'immagine bitmap creata è trasparente, a meno che non passiate il valore false per il parametro transparent. Una volta creata un'immagine bitmap opaca, non è possibile convertirla in una bitmap trasparente. Ogni pixel in un'immagine bitmap opaca utilizza solo 24 bit di informazioni dei canali di colore. Se definite l'immagine bitmap come trasparente, ogni pixel utilizza 32 bit di informazioni dei canali di colore, compreso il canale di trasparenza alfa.

In AIR 1.5 e Flash Player 10, la dimensione massima di un oggetto BitmapData è di 8.191 pixel in larghezza o altezza, mentre il numero totale di pixel non può essere superiore a 16.777.215. (Quindi, se un oggetto BitmapData ha una larghezza di 8.191 pixel, può avere solo una lunghezza di 2.048 pixel.) In Flash Player 9 e versioni precedenti e in AIR 1.1 e versioni precedenti, la limitazione è di 2.880 pixel in altezza e 2.880 pixel in larghezza. Se per la larghezza e l'altezza si specifica un valore maggiore di 2880, non viene creata una nuova istanza.

Parametri
width:int — La larghezza dell'immagine bitmap, espressa in pixel.
 
height:int — L'altezza dell'immagine bitmap, espressa in pixel.
 
transparent:Boolean (default = true) — Indica se l'immagine bitmap supporta la trasparenza per pixel. Il valore predefinito è true (trasparente). Per creare un'immagine bitmap completamente trasparente, impostate il valore del parametro transparent su true e il valore del parametro fillColor su 0x00000000 (o su 0). L'impostazione della proprietà transparent su false può migliorare lievemente le prestazioni di rendering.
 
fillColor:uint (default = 0xFFFFFFFF) — Un valore di colore ARGB a 32 bit utilizzato per riempire l'area dell'immagine bitmap. Il valore predefinito è 0xFFFFFFFF (bianco uniforme).

Genera
ArgumentError — width e/o height superano le dimensioni massime.
Descrizione dei metodi

applyFilter

()metodo
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Usa un'immagine di origine e un oggetto filtro per generare l'immagine filtrata.

Questo metodo si basa sul comportamento degli oggetti filtro incorporati, che determinano il rettangolo di destinazione su cui agisce un rettangolo di origine di input.

Dopo l'applicazione di un filtro, l'immagine risultante può apparire più grande di quella di input. Ad esempio, se si utilizza una classe BlurFilter per sfocare un rettangolo di origine con dimensioni (50,50,100,100) e un punto di destinazione con dimensioni (10,10), l'area che viene modificata nell'immagine di destinazione risulta più grande di (10,10,60,60) a causa della sfocatura. Questo comportamento si verifica internamente durante la chiamata a applyFilter().

Se il parametro sourceRect del parametro sourceBitmapData è una regione interna, ad esempio (50,50,100,100) in un'immagine 200 x 200, il filtro utilizza i pixel di origine fuori del parametro sourceRect per generare il rettangolo di destinazione.

Se l'oggetto BitmapData e l'oggetto specificato come parametro sourceBitmapData coincidono, l'applicazione utilizza una copia temporanea dell'oggetto per eseguire il filtro. Per ottenere risultati ottimali, evitate questa situazione.

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
 
filter:BitmapFilter — L'oggetto filtro utilizzato per eseguire l'operazione di filtraggio. Ogni tipo di filtro è dotato di determinati requisiti, come illustrato di seguito:
  • BlurFilter - Questo filtro può utilizzare immagini di origine e di destinazione sia opache che trasparenti. Se i formati delle immagini non corrispondono, la copia dell'immagine di origine che viene creata durante il filtraggio corrisponde al formato dell'immagine di destinazione.
  • BevelFilter, DropShadowFilter, GlowFilter, - L'immagine di destinazione di questi filtri deve essere trasparente. Se si chiama DropShadowFilter o GlowFilter, viene creata un'immagine che contiene i dati del canale alfa dell'ombra esterna o del bagliore. L'ombra esterna non viene creata nell'immagine di destinazione. Se uno di questi filtri viene utilizzato con un'immagine di destinazione opaca, viene generata un'eccezione.
  • ConvolutionFilter - Questo filtro può utilizzare immagini di origine e di destinazione sia opache che trasparenti.
  • ColorMatrixFilter - Questo filtro può utilizzare immagini di origine e di destinazione sia opache che trasparenti.
  • DisplacementMapFilter - Questo filtro può utilizzare immagini di destinazione sia opache che trasparenti, ma i formati di origine e di destinazione devono essere uguali.


Genera
TypeError — sourceBitmapData, sourceRect, destPoint o filter sono null.
 
IllegalOperationError — La trasparenza degli oggetti BitmapData non è compatibile con l'operazione di filtro.

Altri esempi

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come applicare un filtro sfocatura a un'istanza BitmapData:
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

()metodo 
public function clone():BitmapData

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Restituisce un nuovo oggetto BitmapData che è un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta.

Restituisce
BitmapData — Un nuovo oggetto BitmapData identico all'originale.

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come clonare un'istanza BitmapData e dimostra che quando si modifica l'istanza BitmapData clonata, l'originale rimane immutata:
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

()metodo 
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform. Se il rettangolo corrisponde ai bordi dell'immagine bitmap, questo metodo trasforma i valori del colore dell'intera immagine.

Parametri

rect:Rectangle — Un oggetto Rectangle che definisce l'area dell'immagine in cui viene applicato l'oggetto ColorTransform.
 
colorTransform:flash.geom:ColorTransform — Un oggetto ColorTransform che descrive la trasformazione del colore da applicare.


Genera
TypeError — rect o colorTransform sono null.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come applicare un'operazione di trasformazione del colore alla metà sinistra (rettangolo) di un oggetto BitmapData:
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

()metodo 
public function compare(otherBitmapData:BitmapData):Object

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Confronta due oggetti BitmapData. Se i due oggetti BitmapData hanno le stesse dimensioni (larghezza e altezza), il metodo restituisce un nuovo oggetto BitmapData nel quale ogni pixel è la "differenza" tra i pixel dei due oggetti di origine:

  • Se due pixel sono uguali, il pixel di differenza è 0x00000000.
  • Se due pixel hanno valori RGB diversi (ignorando il valore alfa), la differenza è data da 0xRRGGBB, dove RR/GG/BB sono i singoli valori di differenza tra i canali rosso, verde e blu (il valore in pixel nell'oggetto di origine meno il valore in pixel nell'oggetto otherBitmapData). In questo caso le differenze del canale alfa vengono ignorate.
  • Se solo il valore del canale alfa è diverso, il valore in pixel è 0xZZFFFFFF, dove ZZ rappresenta la differenza tra i valori alfa (il valore alfa nell'oggetto di origine meno il valore alfa nell'oggetto otherBitmapData).

Ad esempio, esaminate i due seguenti oggetti BitmapData:

     var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800);
     var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600);
     var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
     trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
     

Nota: i colori utilizzati per riempire i due oggetti BitmapData hanno valori RGB leggermente diversi (0xFF0000 e 0xFFAA00). Il risultato del metodo compare() è un nuovo oggetto BitmapData in cui ogni pixel mostra la differenza nei valori RGB tra le due bitmap.

Osservate i due oggetti BitmapData seguenti, in cui i colori RGB sono uguali ma i valori alfa sono diversi:

     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
     

Il risultato del metodo compare() è un nuovo oggetto BitmapData in cui ogni pixel mostra la differenza nei valori alfa tra le due bitmap.

Se gli oggetti BitmapData sono equivalenti (con la stessa larghezza e altezza e valori di pixel identici), il metodo restituisce il numero 0.

Se le larghezze degli oggetti BitmapData non sono uguali, il metodo restituisce -3.

Se invece le altezze non sono uguali ma le larghezze coincidono, il metodo restituisce -4.

L'esempio seguente confronta due oggetti Bitmap con larghezze diverse (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
     

Parametri

otherBitmapData:BitmapData — L'oggetto Rectangle da confrontare con l'oggetto BitmapData di origine.

Restituisce
Object — Se i due oggetti BitmapData hanno le stesse dimensioni (larghezza e altezza), il metodo restituisce un nuovo oggetto BitmapData che include la differenza tra i due oggetti (fare riferimento alla discussione principale). Se gli oggetti BitmapData sono equivalenti, il metodo restituisce 0. Se le larghezze degli oggetti BitmapData non sono uguali, il metodo restituisce -3. Se le altezze non sono uguali, il metodo restituisce -4.

Genera
TypeError — otherBitmapData è null.

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra il valore di un pixel nell'oggetto BitmapData che risulta dal confronto di due oggetti BitmapData con dimensioni uguali:
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

()metodo 
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente. Tutti i dati degli altri canali dell'oggetto BitmapData di destinazione vengono mantenuti.

Il valore del canale di origine e il valore del canale di destinazione possono essere i seguenti:

  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.ALPHA

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente.
 
sourceRect:Rectangle — L'oggetto Rectangle di origine. Per copiare solo i dati del canale da un'area più piccola all'interno dell'immagine bitmap, specificare un rettangolo di origine più piccolo delle dimensioni complessive dell'oggetto BitmapData.
 
destPoint:Point — L'oggetto Point di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi dati del canale. Per copiare solo i dati del canale da un'area a un'altra all'interno dell'immagine di destinazione, specificare un punto diverso da (0,0).
 
sourceChannel:uint — Il canale di origine. Utilizzate un valore della classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).
 
destChannel:uint — Il canale di destinazione. Utilizzate un valore della classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA).


Genera
TypeError — sourceBitmapData, sourceRect o destPoint sono null.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come copiare il canale rosso di un oggetto BitmapData nel proprio canale blu all'interno di un'area di 20 x 20 pixel:
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

()metodo 
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore. Il metodo copia un'area rettangolare di un'immagine di origine in un'area rettangolare delle stesse dimensioni in corrispondenza del punto di destinazione dell'oggetto BitmapData di destinazione.

Se includete i parametri alphaBitmap e alphaPoint, potete utilizzare un'immagine secondaria come origine alfa per l'immagine di origine. Se l'immagine di origine contiene dei dati relativi all'alfa, entrambi i gruppi di dati alfa vengono utilizzati per comporre i pixel dall'immagine di origine all'immagine di destinazione. Il parametro alphaPoint è il punto all'interno dell'immagine alfa che corrisponde all'angolo superiore sinistro del rettangolo di origine. Gli eventuali pixel fuori dell'immagine di origine e dell'immagine alfa non vengono copiati nell'immagine di destinazione.

La proprietà mergeAlpha controlla se il canale alfa viene utilizzato quando un'immagine trasparente viene copiata in un'altra immagine trasparente. Per copiare i pixel con i dati relativi al canale alfa, impostate la proprietà mergeAlpha su true. Per impostazione predefinita, la proprietà mergeAlpha è false.

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da cui copiare i pixel. L'immagine di origine può essere un'istanza BitmapData diversa oppure può fare riferimento all'istanza BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi pixel.
 
alphaBitmapData:BitmapData (default = null) — Un'origine secondaria dell'oggetto BitmapData alfa.
 
alphaPoint:Point (default = null) — Il punto all'interno dell'oggetto BitmapData alfa che corrisponde all'angolo superiore sinistro del parametro sourceRect.
 
mergeAlpha:Boolean (default = false) — Per utilizzare il canale alfa, impostate il valore su true. Per copiare i pixel (senza utilizzare il canale alfa), impostate la proprietà su false.


Genera
TypeError — sourceBitmapData, sourceRect, destPoint sono null.

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come copiare pixel da un'area di 20 x 20 pixel in un oggetto BitmapData a un altro oggetto BitmapData.
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

()metodo 
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11.4, AIR 3.4

Riempie un array di byte da un’area rettangolare di dati pixel. A partire dall’indice position del ByteArray, questo metodo scrive nell’array di byte un numero intero senza segno (un valore di pixel a 32 bit non moltiplicato) per ogni pixel. Se necessario, la dimensione dell’array viene aumentata fino al numero di byte necessario per contenere tutti i pixel.

Parametri

rect:Rectangle — Un’area rettangolare dell’oggetto BitmapData corrente
 
data:ByteArray — L’oggetto ByteArray di destinazione.


Genera
TypeError — Se l’argomento rect è null oppure l’argomento data è null.

Elementi API correlati

dispose

()metodo 
public function dispose():void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Libera la memoria utilizzata per memorizzare l'oggetto BitmapData.

Quando si chiama il metodo dispose() su un'immagine, la larghezza e l'altezza dell'immagine vengono impostate su 0. Tutte le chiamate successive a metodi o proprietà di questa istanza BitmapData falliscono e viene generata un'eccezione.

BitmapData.dispose() rilascia immediatamente la memoria occupata dagli effettivi dati bitmap (una bitmap può utilizzare fino a 64 MB di memoria). Dopo l'utilizzo di BitmapData.dispose(), l'oggetto BitmapData non è più utilizzabile. Se chiamate funzioni sull'oggetto BitmapData, il runtime Flash genera un'eccezione. BitmapData.dispose() non sottopone tuttavia l'oggetto BitmapData a garbage collection (circa 128 byte). La memoria occupata dall'effettivo oggetto BitmapData viene rilasciata nel momento in cui su tale oggetto viene eseguito il garbage collector.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra gli effetti della chiamata a un metodo di un oggetto BitmapData dopo una chiamata al metodo dispose() (viene generata un'eccezione):
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

()metodo 
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Disegna l'oggetto di visualizzazione source sull'immagine bitmap utilizzando il renderer di vettori del runtime Flash. Potete specificare matrix, colorTransform, blendMode e un parametro clipRect di destinazione per controllare l'esecuzione del rendering. Facoltativamente, potete specificare se la bitmap deve essere smussata quando viene modificata in scala (questa soluzione funziona solo con un oggetto di origine BitmapData).

Nota: il metodo drawWithQuality() funziona esattamente come il metodo draw(), ma invece di utilizzare la proprietà Stage.quality per determinare la qualità del rendering vettoriale, occorre specificare il parametro quality del metodo drawWithQuality().

Questo metodo corrisponde al modo in cui gli oggetti vengono disegnati mediante il renderer di vettori standard per gli oggetti nell'interfaccia dello strumento di creazione.

L'oggetto di visualizzazione di origine non utilizza per questa chiamata nessuna delle relative trasformazioni applicate. Viene considerato come se facesse parte della libreria o del file, senza trasformazioni di matrice, trasformazioni di colore e metodo di fusione. Per disegnare un oggetto di visualizzazione (ad esempio un clip filmato) utilizzandone le proprietà di trasformazione, potete copiarne la proprietà transform nella proprietà transform dell'oggetto Bitmap che utilizza l'oggetto BitmapData.

Questo metodo è supportato attraverso RTMP in Flash Player 9.0.115.0 e versioni successive e in Adobe AIR. Potete controllare l'accesso agli streaming su Flash Media Server in uno script lato server. Per maggiori informazioni, vedete le proprietà Client.audioSampleAccess e Client.videoSampleAccess in Server-Side ActionScript Language Reference for Adobe Flash Media Server (Guida di riferimento del linguaggio ActionScript server-side per Adobe Flash Media Server).

Se l'oggetto source (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari non provengono dallo stesso dominio del chiamante oppure non sono inclusi in un contenuto accessibile al chiamante mediante una chiamata al metodo Security.allowDomain(), una chiamata a draw() genera un'eccezione SecurityError. Questa limitazione non vale per il contenuto AIR nella funzione di sicurezza sandbox dell'applicazione.

Esistono anche delle limitazioni all'uso di un'immagine bitmap caricata come origine. Una chiamata al metodo draw() viene completata correttamente se l'immagine caricata proviene dallo stesso dominio del chiamante. Inoltre, un file di criteri validi tra più domini presente sul server dell'immagine può autorizzare il dominio del contenuto SWF che chiama il metodo draw(). In tal caso, dovete impostare la proprietà checkPolicyFile di un oggetto LoaderContext e utilizzare tale oggetto come parametro context quando chiamate il metodo load() dell'oggetto Loader utilizzato per caricare l'immagine. Queste limitazioni di sicurezza non valgono per il contenuto AIR presente nella funzione di sicurezza sandbox.

In Windows, il metodo draw() non può catturare il contenuto SWF incorporato in una pagina HTML in un oggetto HTMLLoader in Adobe AIR.

Il metodo draw() non può catturare il contenuto PDF in Adobe AIR né il contenuto SWF incorporato nel codice HTML in cui l'attributo wmode è impostato su "window" in Adobe AIR.

Parametri

source:IBitmapDrawable — L'oggetto di visualizzazione o l'oggetto BitmapData da disegnare nell'oggetto BitmapData. Le classi DisplayObject e BitmapData implementano l'interfaccia IBitmapDrawable.
 
matrix:Matrix (default = null) — Un oggetto Matrix utilizzato per modificare in scala, ruotare o convertire le coordinate della bitmap. Se non volete applicare una matrice di trasformazione all'immagine, impostate questo parametro su una matrice di identità creata con la funzione di costruzione predefinita new Matrix(), oppure passare un valore null.
 
colorTransform:flash.geom:ColorTransform (default = null) — Un oggetto ColorTransform utilizzato per regolare i valori del colore della bitmap. Se non viene fornito alcun oggetto, i colori dell'immagine bitmap non vengono trasformati. Se dovete passare questo parametro ma non desiderate trasformare l'immagine, impostate il parametro su un oggetto ColorTransform creato con la funzione di costruzione predefinita new ColorTransform().
 
blendMode:String (default = null) — Un valore stringa, della classe flash.display.BlendMode, che specifica il metodo di fusione da applicare alla bitmap risultante.
 
clipRect:Rectangle (default = null) — Un oggetto Rectangle che definisce l'area dell'oggetto di origine da disegnare. Se non fornite questo valore, non si verifica alcun troncamento e l'oggetto di origine viene disegnato per intero.
 
smoothing:Boolean (default = false) — Un valore booleano che determina se un oggetto BitmapData viene smussato quando viene modificato in scala o ruotato, in base a un'impostazione di modifica in scala o di rotazione nel parametro matrix. Il parametro smoothing viene applicato solo se il parametro source è un oggetto BitmapData. Con smoothing impostato su false, l'immagine BitmapData ruotata o modificata in scala può apparire pixelizzata o frastagliata. Ad esempio, le due immagini seguenti utilizzano lo stesso oggetto BitmapData per il parametro source, ma il parametro smoothing è impostato su true a sinistra e su false a destra:

Due immagini: una con smussatura e l'altra senza.

Per disegnare una bitmap con smoothing impostato su true occorre più tempo che con smoothing impostato su false.


Genera
ArgumentError — Il parametro source non è un oggetto BitmapData o DisplayObject.
 
SecurityError — L'oggetto source e (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari non provengono dallo stesso dominio del chiamante oppure non sono inclusi in un contenuto accessibile al chiamante mediante una chiamata al metodo Security.allowDomain(). Questa limitazione non vale per il contenuto AIR nella funzione di sicurezza sandbox dell'applicazione.
 
ArgumentError — L'origine è null o non è un oggetto IBitmapDrawable valido.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come disegnare un oggetto TextField su un oggetto BitmapData.
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

()metodo 
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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11.3, AIR 3.3

Disegna l'oggetto di visualizzazione source sull'immagine bitmap utilizzando il renderer di vettori del runtime Flash. Potete specificare matrix, colorTransform, blendMode e un parametro clipRect di destinazione per controllare l'esecuzione del rendering. Facoltativamente, potete specificare se la bitmap deve essere smussata quando viene modificata in scala (questa soluzione funziona solo con un oggetto di origine BitmapData).

Nota: il metodo drawWithQuality() funziona esattamente come il metodo draw(), ma invece di utilizzare la proprietà Stage.quality per determinare la qualità del rendering vettoriale, occorre specificare il parametro quality del metodo drawWithQuality().

Questo metodo corrisponde al modo in cui gli oggetti vengono disegnati mediante il renderer di vettori standard per gli oggetti nell'interfaccia dello strumento di creazione.

L'oggetto di visualizzazione di origine non utilizza per questa chiamata nessuna delle relative trasformazioni applicate. Viene considerato come se facesse parte della libreria o del file, senza trasformazioni di matrice, trasformazioni di colore e metodo di fusione. Per disegnare un oggetto di visualizzazione (ad esempio un clip filmato) utilizzandone le proprietà di trasformazione, potete copiarne la proprietà transform nella proprietà transform dell'oggetto Bitmap che utilizza l'oggetto BitmapData.

Questo metodo è supportato attraverso RTMP in Flash Player 9.0.115.0 e versioni successive e in Adobe AIR. Potete controllare l'accesso agli streaming su Flash Media Server in uno script lato server. Per ulteriori informazioni vedete le proprietà Client.audioSampleAccess e Client.videoSampleAccess nel manuale Server-Side ActionScript Language Reference for Adobe Flash Media Server.

Se l’oggetto source (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari non provengono dallo stesso dominio del chiamante oppure non sono inclusi in un contenuto accessibile al chiamante mediante una chiamata al metodo Security.allowDomain(), una chiamata a drawWithQuality() genera un’eccezione SecurityError. Questa limitazione non vale per il contenuto AIR nella funzione di sicurezza sandbox dell'applicazione.

Esistono anche delle limitazioni all'uso di un'immagine bitmap caricata come origine. Una chiamata al metodo drawWithQuality() viene completata correttamente se l’immagine caricata proviene dallo stesso dominio del chiamante. Inoltre, un file di criteri validi tra più domini presente sul server dell’immagine può autorizzare il dominio del contenuto SWF che chiama il metodo drawWithQuality(). In tal caso, dovete impostare la proprietà checkPolicyFile di un oggetto LoaderContext e utilizzare tale oggetto come parametro context quando chiamate il metodo load() dell'oggetto Loader utilizzato per caricare l'immagine. Queste limitazioni di sicurezza non valgono per il contenuto AIR presente nella funzione di sicurezza sandbox.

In Windows, il metodo drawWithQuality() non può catturare il contenuto SWF incorporato in una pagina HTML in un oggetto HTMLLoader in Adobe AIR.

Il metodo drawWithQuality() non può catturare il contenuto PDF in Adobe AIR né il contenuto SWF incorporato nel codice HTML in cui l'attributo wmode è impostato su "window" in Adobe AIR.

Parametri

source:IBitmapDrawable — L'oggetto di visualizzazione o l'oggetto BitmapData da disegnare nell'oggetto BitmapData. Le classi DisplayObject e BitmapData implementano l'interfaccia IBitmapDrawable.
 
matrix:Matrix (default = null) — Un oggetto Matrix utilizzato per modificare in scala, ruotare o convertire le coordinate della bitmap. Se non volete applicare una matrice di trasformazione all'immagine, impostate questo parametro su una matrice di identità creata con la funzione di costruzione predefinita new Matrix(), oppure passare un valore null.
 
colorTransform:flash.geom:ColorTransform (default = null) — Un oggetto ColorTransform utilizzato per regolare i valori del colore della bitmap. Se non viene fornito alcun oggetto, i colori dell'immagine bitmap non vengono trasformati. Se dovete passare questo parametro ma non desiderate trasformare l'immagine, impostate il parametro su un oggetto ColorTransform creato con la funzione di costruzione predefinita new ColorTransform().
 
blendMode:String (default = null) — Un valore stringa, della classe flash.display.BlendMode, che specifica il metodo di fusione da applicare alla bitmap risultante.
 
clipRect:Rectangle (default = null) — Un oggetto Rectangle che definisce l'area dell'oggetto di origine da disegnare. Se non fornite questo valore, non si verifica alcun troncamento e l'oggetto di origine viene disegnato per intero.
 
smoothing:Boolean (default = false) — Un valore booleano che determina se un oggetto BitmapData viene smussato quando viene modificato in scala o ruotato, in base a un'impostazione di modifica in scala o di rotazione nel parametro matrix. Il parametro smoothing viene applicato solo se il parametro source è un oggetto BitmapData. Con smoothing impostato su false, l'immagine BitmapData ruotata o modificata in scala può apparire pixelizzata o frastagliata. Ad esempio, le due immagini seguenti utilizzano lo stesso oggetto BitmapData per il parametro source, ma il parametro smoothing è impostato su true a sinistra e su false a destra:

Due immagini: una con smussatura e l'altra senza.

Per disegnare una bitmap con smoothing impostato su true occorre più tempo che con smoothing impostato su false.

 
quality:String (default = null) — Uno qualsiasi dei valori StageQuality. Seleziona la qualità di antialiasing da utilizzare per disegnare la grafica vettoriale.


Genera
ArgumentError — Il parametro source non è un oggetto BitmapData o DisplayObject.
 
SecurityError — L'oggetto source e (nel caso di un oggetto Sprite o MovieClip) tutti i suoi oggetti secondari non provengono dallo stesso dominio del chiamante oppure non sono inclusi in un contenuto accessibile al chiamante mediante una chiamata al metodo Security.allowDomain(). Questa limitazione non vale per il contenuto AIR nella funzione di sicurezza sandbox dell'applicazione.
 
ArgumentError — L'origine è null o non è un oggetto IBitmapDrawable valido.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come disegnare un oggetto TextField su un oggetto BitmapData.
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

()metodo 
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 11.3, AIR 3.3

Comprime questo oggetto BitmapData utilizzando l’algoritmo di compressione selezionato e restituisce un nuovo oggetto ByteArray. Facoltativamente, scrive i dati risultanti nel ByteArray specificato. L’argomento compressor specifica l’algoritmo di codifica e può essere PNGEncoderOptions, JPEGEncoderOptions o JPEGXREncoderOptions.

Nell’esempio seguente viene compresso un oggetto BitmapData utilizzando 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); 

Parametri

rect:Rectangle — L’area dell’oggetto BitmapData da comprimere.
 
compressor:Object — Il tipo di compressore da utilizzare. I valori validi sono: flash.display.PNGEncoderOptions, flash.display.JPEGEncoderOptions e flash.display.JPEGXREncoderOptions.
 
byteArray:ByteArray (default = null) — Il ByteArray di output che conterrà l’immagine codificata.

Restituisce
ByteArray — Un oggetto ByteArray contenente l’immagine codificata.

Elementi API correlati

fillRect

()metodo 
public function fillRect(rect:Rectangle, color:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Riempie un'area rettangolare di pixel con un determinato colore ARGB.

Parametri

rect:Rectangle — L'area rettangolare da riempire.
 
color:uint — Il valore di colore ARGB che riempie l'area. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699).


Genera
TypeError — rect è null.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come applicare un riempimento blu a un'area rettangolare di un oggetto BitmapData.
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

()metodo 
public function floodFill(x:int, y:int, color:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e applicando un riempimento di un determinato colore. Il metodo floodFill() è simile allo strumento "secchio di vernice" presente in molti programmi di disegno. Il colore è un colore ARGB che contiene le informazioni sia sull'alfa che sui colori.

Parametri

x:int — La coordinata x dell'immagine.
 
y:int — La coordinata y dell'immagine.
 
color:uint — Il colore ARGB da utilizzare come riempimento.


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra come applicare un riempimento rosso a un'area di un oggetto BitmapData, cioè all'area circostante il pixel definito dal punto (10, 10) in cui tutti i colori corrispondono al colore di quel punto.
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Rectangle;

var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00);

var rect:Rectangle = new Rectangle(0, 0, 20, 20);
myBitmapData.fillRect(rect, 0x000000FF);
rect = new Rectangle(15, 15, 25, 25);
myBitmapData.fillRect(rect, 0x000000FF);

myBitmapData.floodFill(10, 10, 0x00FF0000);

var bm:Bitmap = new Bitmap(myBitmapData);
addChild(bm);

generateFilterRect

()metodo 
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Determina il rettangolo di destinazione su cui agisce la chiamata a applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filter.

Ad esempio, un filtro sfocatura agisce di solito su un'area più vasta delle dimensioni dell'immagine originale. Un'immagine di 100 x 200 pixel che viene filtrata da un'istanza BlurFilter predefinita dove blurX = blurY = 4 genera un rettangolo di destinazione di (-2,-2,104,204). Il metodo generateFilterRect() consente di determinare in anticipo le dimensioni di questo rettangolo di destinazione per stabilire correttamente le dimensioni dell'immagine di destinazione prima di un'operazione di filtro.

Alcuni filtri troncano il rettangolo di destinazione in base alle dimensioni dell'immagine di origine. Ad esempio, un filtro DropShadow interno non genera un risultato più grande della relativa immagine di origine. In questa API, l'oggetto BitmapData viene utilizzato come parametro bounds di origine e non come parametro rect di origine.

Parametri

sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
filter:BitmapFilter — L'oggetto filter utilizzato per calcolare il rettangolo di destinazione.

Restituisce
Rectangle — Un rettangolo di destinazione calcolato mediante un'immagine, il parametro sourceRect e un filtro.

Genera
TypeError — sourceRect o filter sono null.

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente illustra come utilizzare il metodo generateFilterRect() per determinare l'area rettangolare che verrà occupata dal risultato di un filtro sfocatura. I risultati del metodo generateFilterRect() vengono prodotti dalla funzione 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);
Si noti che il metodo generateFilterRect() non applica il filtro. Chiamare il metodo applyFilter() per applicare il filtro.

getColorBoundsRect

()metodo 
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap (se il parametro findColor è impostato su true) oppure che racchiude completamente tutti i pixel che non includono il colore specificato (se findColor è false).

Ad esempio, se savete un'immagine di origine e desiderate determinare il rettangolo che contiene un canale alfa diverso da 0, passate {mask: 0xFF000000, color: 0x00000000} come parametri. Se il parametro findColor è impostato su true, vengono cercati all'interno dell'intera immagine i limiti dei pixel per i quali (value & mask) == color (dove value è il valore di colore del pixel). Se il parametro findColor è impostato su false, vengono cercati all'interno dell'intera immagine i limiti dei pixel per i quali (value & mask) != color (dove value è il valore del colore del pixel). Per determinare lo spazio bianco attorno all'immagine, passate {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} per trovare i limiti dei pixel diversi dal bianco.

Parametri

mask:uint — Un valore esadecimale che specifica i bit del colore ARGB da considerare. Il valore del colore viene combinato con questo valore esadecimale utilizzando l'operatore & (AND bit a bit).
 
color:uint — Un valore esadecimale che specifica il colore ARGB da far corrispondere (se findColor è impostato su true) o da non far corrispondere (se findColor è impostato su false).
 
findColor:Boolean (default = true) — Se il valore è impostato su true, restituisce i limiti di un valore di colore in un'immagine. Se il valore è impostato su false, restituisce i limiti del punto in cui questo colore non esiste in un'immagine.

Restituisce
Rectangle — L'area dell'immagine che è del colore specificato.

Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente viene creato un oggetto BitmapData i cui pixel hanno un riempimento rosso nella metà superiore. Quindi, viene chiamato il metodo getColorBoundsRect() per determinare il rettangolo in cui i pixel sono rossi (0xFF0000), infine lo stesso metodo viene chiamato nuovamente per determinare il rettangolo in cui i pixel non sono rossi (impostando il parametro findColor su 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

()metodo 
public function getPixel(x:int, y:int):uint

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y). Il metodo getPixel() restituisce un valore di pixel non moltiplicato. Non viene restituita alcuna informazione sull'alfa.

Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.

Parametri

x:int — La posizione x del pixel.
 
y:int — La posizione y del pixel.

Restituisce
uint — Un numero che rappresenta un valore in pixel RGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, il metodo restituisce 0.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente viene creato un oggetto BitmapData con un riempimento rosso, quindi viene utilizzato il metodo getPixel() per determinare il valore del colore nel pixel in alto a sinistra:
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

()metodo 
public function getPixel32(x:int, y:int):uint

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB. Questo metodo è simile al metodo getPixel(), che restituisce un colore RGB senza dati relativi al canale alfa.

Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.

Parametri

x:int — La posizione x del pixel.
 
y:int — La posizione y del pixel.

Restituisce
uint — Un numero che rappresenta un valore in pixel ARGB. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente viene creato un oggetto BitmapData con un riempimento rosso, quindi viene utilizzato il metodo getPixel32() per determinare il valore del colore nel pixel in alto a sinistra. Infine, vengono determinati i valori esadecimali di ciascun componente del colore (alfa, rosso, verde e blu):
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

()metodo 
public function getPixels(rect:Rectangle):ByteArray

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Genera un array di byte da un'area rettangolare di dati pixel. Scrive nell'array di byte un numero intero senza segno (un valore di pixel a 32 bit non moltiplicato) per ogni pixel.

Parametri

rect:Rectangle — Un'area rettangolare dell'oggetto BitmapData corrente.

Restituisce
ByteArray — Un array di byte (ByteArray) che rappresenta i pixel del rettangolo (Rectangle) specificato.

Genera
TypeError — rect è null.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente viene creato un oggetto BitmapData con un riempimento di pixel a disturbo casuale, quindi viene utilizzato il metodo getPixel() per riempire l'oggetto ByteArray con i valori di pixel dell'oggetto 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

()metodo 
public function getVector(rect:Rectangle):Vector.<uint>

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5, Flash Lite 4

Genera un array Vector da un'area rettangolare di dati pixel. Restituisce un oggetto Vector di numeri interi senza segno (un valore di pixel a 32 bit non moltiplicato) per il rettangolo specificato.

Parametri

rect:Rectangle — Un'area rettangolare dell'oggetto BitmapData corrente.

Restituisce
Vector.<uint> — Un oggetto Vector che rappresenta il rettangolo (Rectangle) specificato.

Genera
TypeError — rect è null.

histogram

()metodo 
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5, Flash Lite 4

Calcola un istogramma di numeri binari con 256 valori di un oggetto BitmapData. Questo metodo restituisce un oggetto Vector contenente 4 Vector.<Number> istanze (4 oggetti Vector che contengono oggetti Number). Le 4 istanze Vector rappresentano nell'ordine i componenti rosso, verde, blu e alpha. Ogni istanza Vector contiene 256 valori che rappresentano il conteggio di popolazione di un valore componente individuale, da 0 a 255.

Parametri

hRect:Rectangle (default = null) — L'area dell'oggetto BitmapData da utilizzare.

Restituisce
Vector.<Vector.<Number>>

hitTest

()metodo 
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap. Una zona attiva viene definita come una sovrapposizione di un punto o un rettangolo su un pixel opaco o due pixel opachi sovrapposti. Durante l'esecuzione del rilevamento per zone non vengono considerati allungamenti, rotazioni o altre trasformazioni per nessun oggetto.

Se un'immagine è opaca, questo metodo la considera un rettangolo completamente opaco. Entrambe le immagini devono essere trasparenti per eseguire un rilevamento per zone a livello di pixel che consideri la trasparenza. Quando si verificano due immagini trasparenti, i parametri di soglia dell'alfa controllano quali valori di canale alfa (da 0 a 255) vengono considerati opachi.

Parametri

firstPoint:Point — Una posizione nell'angolo superiore sinistro dell'immagine BitmapData, in uno spazio di coordinate arbitrario. Lo stesso spazio di coordinate viene utilizzato per definire il parametro secondBitmapPoint.
 
firstAlphaThreshold:uint — Il valore di canale alfa più basso che viene considerato opaco per la verifica di rilevamento delle zone attive.
 
secondObject:Object — Un oggetto Rectangle, Point, Bitmap o BitmapData.
 
secondBitmapDataPoint:Point (default = null) — Un punto che definisce la posizione di un pixel nel secondo oggetto BitmapData. Utilizzate questo parametro solo quando il valore di secondObject è un oggetto BitmapData.
 
secondAlphaThreshold:uint (default = 1) — Il valore di canale alfa più basso che viene considerato opaco per il secondo oggetto BitmapData. Utilizzate questo parametro solo quando il valore di secondObject è un oggetto BitmapData ed entrambi gli oggetti BitmapData sono trasparenti.

Restituisce
Boolean — Un valore true se si verifica un contatto, false in caso contrario.

Genera
ArgumentError — Il parametro secondObject non è un oggetto Point, Rectangle, Bitmap o BitmapData.
 
TypeError — firstPoint è null.

Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente viene creato un oggetto BitmapData che è opaco solo in un'area rettangolare (20, 20, 40, 40) e viene chiamato il metodo hitTest() con un oggetto Point come secondObject. Nella prima chiamata, l'oggetto Point definisce l'angolo superiore sinistro dell'oggetto BitmapData, che non è opaco, mentre nella seconda chiamata, l'oggetto Point definisce il centro dell'oggetto BitmapData, che è 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

()metodo 
public function lock():void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Blocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, non vengano aggiornati quando questo oggetto BitmapData viene modificato. Per migliorare le prestazioni, utilizzate questo metodo in combinazione con unlock() prima e dopo numerose chiamate al metodo setPixel() o setPixel32().

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente crea un oggetto BitmapData in base alla proprietà bitmapData di un oggetto Bitmap di nome picture. Quindi, chiama il metodo lock() prima di chiamare una funzione personalizzata complessa, complexTransformation(), che modifica l'oggetto BitmapData. (L'oggetto picture e la funzione complexTransformation() non sono definiti in questo esempio.) Anche se la funzione complexTransformation() aggiorna la proprietà bitmapData dell'oggettopicture, le modifiche non vengono applicate fino a quando il codice non chiama il metodo unlock() sull'oggetto bitmapData:
import flash.display.BitmapData;

var bitmapData:BitmapData = picture.bitmapData;
bitmapData.lock();
bitmapData = complexTransformation(bitmapData);
bitmapData.unlock();
picture.bitmapData = bitmapData;

merge

()metodo 
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione. Per ogni canale e ogni pixel, viene calcolato un nuovo valore in base ai valori dei canali dell'origine e ai pixel di destinazione. Ad esempio, nel canale rosso, il nuovo valore viene calcolato come segue (redSrc è il valore del canale rosso per un pixel dell'immagine di origine e redDest è il valore del canale rosso per il pixel corrispondente dell'immagine di destinazione):

new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;

I valori redMultiplier, greenMultiplier, blueMultiplier e alphaMultiplier sono i moltiplicatori utilizzati per ciascun canale di colore. Utilizzate un valore esadecimale che va da 0 a 0x100 (256), dove 0 specifica il valore completo dalla destinazione utilizzata nel risultato, 0x100 specifica il valore completo dall'origine utilizzata e i numeri compresi specificano la fusione utilizzata (ad esempio 0x80 per 50%).

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
 
redMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale rosso.
 
greenMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale verde.
 
blueMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore del canale blu.
 
alphaMultiplier:uint — Un valore esadecimale per cui moltiplicare il valore di trasparenza alfa.


Genera
TypeError — sourceBitmapData, sourceRect o destPoint sono null.

Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente vengono creati due oggetti BitmapData. Entrambi hanno una dimensione di 100 x 80 pixel. Il primo ha un riempimento verde, mentre il secondo ha un riempimento rosso. Il codice chiama il metodo merge(), unendo i pixel del secondo oggetto BitmapData al primo oggetto BitmapData, ma solo nell'area rettangolare specificata:
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

()metodo 
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Riempie un'immagine con pixel che rappresentano disturbi a caso.

Parametri

randomSeed:int — Il numero di scelta casuale da utilizzare. Se si mantengono inalterati tutti gli altri parametri, è possibile generare diversi risultati pseudo casuali variando il valore di scelta casuale. La funzione del disturbo è una funzione di mappatura e non una vera e propria funzione di generazione di numeri casuali, pertanto crea ogni volta gli stessi risultati dalla stessa scelta casuale.
 
low:uint (default = 0) — Il valore più basso da generare per ogni canale (da 0 a 255).
 
high:uint (default = 255) — Il valore più alto da generare per ogni canale (da 0 a 255).
 
channelOptions:uint (default = 7) — Un numero che può essere costituito da una qualunque combinazione dei valori dei quattro canali di colore (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA). Potete utilizzare l'operatore OR (|) per combinare i valori di canale.
 
grayScale:Boolean (default = false) — Un valore booleano. Se il valore è true, viene creata un'immagine in scala di grigi impostando tutti i canali di colore sullo stesso valore. La selezione del canale alfa non viene modificata se si imposta questo parametro su true.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente crea due oggetti BitmapData e chiama il metodo noise(). Tuttavia, il parametro grayscale viene impostato su false per la chiamata al metodo noise() del primo oggetto e su true per la chiamata al metodo noise() del secondo oggetto:
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

()metodo 
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale.

I runtime Flash utilizzano la seguente procedura per generare l'immagine risultante:

  1. Una volta calcolati, i valori del rosso, del verde, del blu e della trasparenza alfa vengono sommati mediante l'aritmetica standard a numeri interi a 32 bit.
  2. I valori dei canali rosso, verde, blu e alfa di ogni pixel vengono estratti sotto forma di valori distinti compresi tra 0 e 255. I valori ottenuti vengono quindi utilizzati per la ricerca di nuovi valori di colore nell'array appropriato: redArray, greenArray, blueArray e alphaArray. Ognuno di questi quattro array solitamente contiene 256 valori.
  3. Una volta recuperati, tutti e quattro i nuovi valori di canale colore vengono combinati in un valore ARGB standard che viene applicato al pixel.

Questo metodo consente di supportare gli effetti su più canali. Ogni array di input può contenere valori completi a 32 bit, e non avviene alcuno spostamento quando i valori vengono combinati. Questa routine non supporta il fissaggio di canali singoli.

Se per un canale non viene specificato alcun array, il canale di colore viene copiato dall'immagine di origine all'immagine di destinazione.

Questo metodo può essere utilizzato per numerosi effetti, come la mappatura delle tavolozze generiche (dove un canale viene convertito in un'immagine di colore falsa). Potete utilizzarlo anche per una serie di algoritmi avanzati per la manipolazione dei colori, come gamma, curve, livelli e quantizzazione.

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'oggetto BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
 
redArray:Array (default = null) — Se redArray non è null, red = redArray[valore rosso origine] else red = valore rect origine.
 
greenArray:Array (default = null) — Se greenArray non è null, green = greenArray[valore verde origine] else green = valore verde origine.
 
blueArray:Array (default = null) — Se blueArray non è null, blue = blueArray[valore blu origine] else blue = valore blu origine.
 
alphaArray:Array (default = null) — Se alphaArray non è null, alpha = alphaArray[valore alfa origine] else alpha = valore alfa origine.


Genera
TypeError — sourceBitmapData, sourceRect o destPoint sono null.

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente crea un oggetto BitmapData verde con un quadrato centrale rosso, quindi utilizza il metodo paletteMap() per scambiare il rosso con il verde nella metà rettangolare inferiore dell'oggetto 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

()metodo 
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

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Genera un'immagine di disturbo Perlin.

L'algoritmo di generazione del disturbo Perlin interpola e combina singole funzioni di disturbo casuale (definite ottave) in un'unica funzione che genera un disturbo casuale dall'aspetto più naturale. Come accade nelle ottave musicali, ogni funzione di ottava è il doppio della frequenza di quella che la precede. Il disturbo Perlin è stato descritto come una "somma frattale di disturbo", dal momento che combina più serie di disturbo con diversi livelli di dettaglio.

Le funzioni di disturbo Perlin possono essere utilizzate per simulare fenomeni naturali e paesaggi, come la trama del legno, le nuvole e le catene montuose. Nella maggior parte dei casi, l'output di una funzione di disturbo Perlin non viene visualizzata direttamente ma viene utilizzata per modificare altre immagini e applicarvi delle variazioni pseudo casuali.

Le funzioni semplici di disturbo casuale digitale spesso producono immagini con punti molto contrastati. Questo tipo di forte contrasto non è tuttavia frequente in natura. L'algoritmo Perlin per il disturbo mescola più funzioni di disturbo che operano a diversi livelli di dettaglio. L'algoritmo crea variazioni più piccole tra valori di pixel adiacenti.

Parametri

baseX:Number — La frequenza da utilizzare nella direzione x. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 64 come valore per baseX.
 
baseY:Number — La frequenza da utilizzare nella direzione y. Ad esempio, per generare un disturbo con dimensioni adatte ad un'immagine 64 x 128, passare 128 come valore per baseY.
 
numOctaves:uint — Il numero di ottave o singole funzioni di disturbo da combinare per creare questo disturbo. Un numero più elevato di ottave crea immagini con maggiore dettaglio. Tuttavia, un numero più elevato di ottave richiede tempi di elaborazione più lunghi.
 
randomSeed:int — Il numero di scelta casuale da utilizzare. Se si mantengono inalterati tutti gli altri parametri, è possibile generare diversi risultati pseudo casuali variando il valore di scelta casuale. La funzione del disturbo Perlin è una funzione di mappatura e non una vera e propria funzione di generazione di numeri casuali, pertanto dalla stessa scelta casuale crea ogni volta gli stessi risultati.
 
stitch:Boolean — Un valore booleano. Se il valore è true, il metodo tenta di attenuare i bordi di transizione dell'immagine per creare delle texture uniformi da utilizzare come riempimenti bitmap affiancati.
 
fractalNoise:Boolean — Un valore booleano. Se il valore è true, il metodo genera disturbo frattale; in caso contrario genera turbolenza. Un'immagine con turbolenza presenta delle discontinuità visibili nel gradiente che possono fornire una migliore approssimazione per effetti visivi più nitidi come le fiamme o le onde del mare.
 
channelOptions:uint (default = 7) — Un numero che può essere costituito da una qualunque combinazione dei valori dei quattro canali di colore (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN e BitmapDataChannel.ALPHA). Potete utilizzare l'operatore OR (|) per combinare i valori di canale.
 
grayScale:Boolean (default = false) — Un valore booleano. Se il valore è true, viene creata un'immagine in scala di grigi impostando ogni singolo canale di colore rosso, verde e blu per valori identici. Il valore del canale alfa non viene modificato se questo valore è impostato su true.
 
offsets:Array (default = null) — Un array di punti che corrispondono agli offset x e y di ciascuna ottava. Se modificate questi valori di offset, potete effettuare lo scorrimento fluido di un'immagine perlinNoise. Ogni punto nell'array di offset modifica la funzione di disturbo di un'ottava specifica.


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente crea un oggetto BitmapData da 200 x 200 pixel che chiama il metodo perlinNoise() per generare un effetto acquerello rosso e blu:
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

()metodo 
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine. I runtime Flash utilizzano un valore randomSeed per generare una dissolvenza pixel casuale. Il valore restituito dalla funzione deve essere passato nelle successive chiamate per continuare la dissolvenza pixel fino al suo completamento.

Se l'immagine di origine non è uguale a quella di destinazione, i pixel vengono copiati dall'origine alla destinazione mediante tutte le proprietà. Questo processo consente di effettuare una dissolvenza da un'immagine vuota a un'immagine ricca di elementi.

Se le immagini di origine e di destinazione sono uguali, i pixel vengono riempiti con il parametro color. Questo processo consente di effettuare una dissolvenza in uscita da un'immagine ricca di elementi. Il parametro point di destinazione viene ignorato.

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
 
randomSeed:int (default = 0) — La scelta casuale da utilizzare per avviare la dissolvenza pixel.
 
numPixels:int (default = 0) — Il valore predefinito è 1/30 dell'area di origine (larghezza x altezza).
 
fillColor:uint (default = 0) — Un valore di colore ARGB utilizzato per il riempimento di pixel il cui valore di origine è uguale al valore di destinazione.

Restituisce
int — Il nuovo valore di scelta causale da utilizzare per chiamate successive.

Genera
TypeError — sourceBitmapData, sourceRect o destPoint sono null.
 
TypeError — Il valore numPixels è negativo

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente utilizza pixelDissolve() per convertire un oggetto BitmapData grigio in uno rosso dissolvendo 40 pixel alla volta finché tutti i pixel hanno cambiato colore:
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

()metodo 
public function scroll(x:int, y:int):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Scorre un'immagine di una certa quantità di pixel (x, y). Le aree dei bordi fuori dell'area di scorrimento vengono lasciate invariate.

Parametri

x:int — Il valore dello scorrimento orizzontale.
 
y:int — Il valore dello scorrimento verticale.


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente mostra gli effetti dello scorrimento di 40 pixel verso destra di un oggetto dati Bitmap:
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

()metodo 
public function setPixel(x:int, y:int, color:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Imposta un singolo pixel di un oggetto BitmapData. Durante l'operazione, il valore corrente del canale alfa dei pixel dell'immagine viene conservato. Il valore del parametro di colore RGB viene gestito come un valore di colore non moltiplicato.

Nota: per migliorare le prestazioni, quando usate ripetutamente il metodo setPixel() o setPixel32(), chiamate il metodo lock() prima di setPixel() o setPixel32(), quindi chiamate il metodo unlock() dopo aver apportato tutte le modifiche necessarie ai pixel. Questa procedura impedisce che gli oggetti che fanno riferimento a questa istanza BitmapData vengano aggiornati finché non sono state effettuate tutte le modifiche dei pixel.

Parametri

x:int — La posizione x del pixel il cui valore cambia.
 
y:int — La posizione y del pixel il cui valore cambia
 
color:uint — Il colore RGB risultante del pixel.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente utilizza il metodo setPixel() per tracciare una linea rossa in un oggetto 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

()metodo 
public function setPixel32(x:int, y:int, color:uint):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData. Questo metodo è simile al metodo setPixel(); la differenza principale consiste nel fatto che il metodo setPixel32() accetta un valore di colore ARGB che contiene le informazioni sul canale alfa.

Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi BitmapData accettano e restituiscono valori non moltiplicati. La rappresentazione in pixel interni viene convertita dal formato premoltiplicato a non moltiplicato prima di essere restituita come valore. Durante un'operazione di impostazione, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza.

Nota: per migliorare le prestazioni, quando usate ripetutamente il metodo setPixel() o setPixel32(), chiamate il metodo lock() prima di setPixel() o setPixel32(), quindi chiamate il metodo unlock() dopo aver apportato tutte le modifiche necessarie ai pixel. Questa procedura impedisce che gli oggetti che fanno riferimento a questa istanza BitmapData vengano aggiornati finché non sono state effettuate tutte le modifiche dei pixel.

Parametri

x:int — La posizione x del pixel il cui valore cambia.
 
y:int — La posizione y del pixel il cui valore cambia
 
color:uint — Il colore ARGB risultante del pixel. Se è la bitmap creata è opaca (non trasparente), la parte di trasparenza alfa di questo valore di colore viene ignorata.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente utilizza il metodo setPixel32() per tracciare una linea rossa trasparente (alfa == 0x60) in un oggetto 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

()metodo 
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0, Flash Lite 4

Converte un array di byte in un'area rettangolare di dati pixel. Per ciascun pixel, viene chiamato il metodo ByteArray.readUnsignedInt() e il valore restituito viene scritto nel pixel. Se l'array di byte termina prima che il rettangolo sia stato disegnato per intero, la funzione viene restituita. I dati previsti nell'array di byte sono valori di pixel ARGB a 32 bit. Sull'array di byte non viene eseguita alcuna ricerca prima o dopo la lettura dei pixel.

Parametri

rect:Rectangle — Specifica l'area rettangolare dell'oggetto BitmapData.
 
inputByteArray:ByteArray — Un oggetto ByteArray che consiste di valori di pixel a 32 bit non moltiplicati da utilizzare nell'area rettangolare.


Genera
EOFError — L'oggetto inputByteArray non contiene dati sufficienti per riempire l'area del rettangolo rect. Il metodo riempie il numero massimo di pixel possibile prima di generare l'eccezione.
 
TypeError — rect o inputByteArray sono null.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente utilizza i metodi getPixels() e setPixels() per copiare pixel da un'istanza BitmapData a un'altra.
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

()metodo 
public function setVector(rect:Rectangle, inputVector:Vector.<uint>):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 10, AIR 1.5, Flash Lite 4

Converte un vettore in un'area rettangolare di dati pixel. Per ciascun pixel, un elemento Vector viene letto e scritto nel pixel BitmapData. I dati previsti nel vettore sono valori di pixel ARGB a 32 bit.

Parametri

rect:Rectangle — Specifica l'area rettangolare dell'oggetto BitmapData.
 
inputVector:Vector.<uint> — Un oggetto Vector che consiste di valori di pixel a 32 bit non moltiplicati da utilizzare nell'area rettangolare.


Genera
RangeError — L'array del vettore non è abbastanza grande per leggere tutti i dati pixel.

threshold

()metodo 
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Prova i valori in pixel di un'immagine in base a una soglia specificata e imposta i pixel che superano la prova a nuovi valori di colore. Se si utilizza il metodo threshold(), è possibile isolare e sostituire le gamme di colore in un'immagine ed eseguire altre operazioni logiche su pixel di immagine.

La logica di verifica del metodo threshold() è la seguente:

  1. Se ((pixelValue & mask) operation (threshold & mask)), il pixel viene impostato su color;
  2. Altrimenti, se copySource == true, il pixel viene impostato sul valore di pixel corrispondente di sourceBitmap.

Il parametro specifica operation l'operatore di confronto da utilizzare per la verifica di soglia. Ad esempio, se utilizzate "==" come parametro operation, potete isolare il valore di un colore specifico in un'immagine. Oppure, se utilizzate {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}, potete impostare tutti i pixel di destinazione in modo che siano trasparenti quando l'alfa del pixel dell'immagine di origine è inferiore a 0x7F. Questa tecnica è utilizzabile per transizioni animate ed altri effetti.

Parametri

sourceBitmapData:BitmapData — L'immagine bitmap di input da utilizzare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'istanza BitmapData corrente.
 
sourceRect:Rectangle — Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input.
 
destPoint:Point — Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine.
 
operation:String — Uno degli operatori di confronto seguenti, passati come String: "<", "<=", ">", ">=", "==", "!="
 
threshold:uint — Il valore su cui si verifica ciascun pixel per vedere se corrisponde alla soglia o la supera.
 
color:uint (default = 0) — Il valore di colore su cui è impostato un pixel per vedere se soddisfa la verifica di soglia. Il valore predefinito è 0x00000000.
 
mask:uint (default = 0xFFFFFFFF) — La maschera da utilizzare per isolare un componente di colore.
 
copySource:Boolean (default = false) — Se il valore è true, i valori dei pixel dell'immagine di origine vengono copiati nella destinazione anche se la verifica della soglia dà esito negativo. Se il valore è false, l'immagine di origine non viene copiata se la verifica della soglia dà esito negativo.

Restituisce
uint — Il numero di pixel modificati.

Genera
TypeError — sourceBitmapData, sourceRect, destPoint o operation sono null.
 
ArgumentError — La stringa operation non è un'operazione valida

Esempio  ( Come utilizzare questo esempio )

L'esempio seguente utilizza il metodo perlinNoise() per aggiungere un motivo rosso e blu all'oggetto BitmapData, quindi utilizza il metodo threshold() per copiare quei pixel dal primo oggetto BitmapData a un secondo oggetto, sostituendo i pixel in cui il valore rosso è superiore a 0x80 (50%) con un pixel impostato su rosso trasparente (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

()metodo 
public function unlock(changeRect:Rectangle = null):void

Versione linguaggio: ActionScript 3.0
Versioni runtime: Flash Player 9, AIR 1.0

Sblocca un'immagine in modo che gli eventuali oggetti che fanno riferimento all'oggetto BitmapData, ad esempio gli oggetti Bitmap, vengano aggiornati quando questo oggetto BitmapData viene modificato. Per migliorare le prestazioni, utilizzate questo metodo in combinazione con lock() prima e dopo numerose chiamate al metodo setPixel() o setPixel32().

Parametri

changeRect:Rectangle (default = null) — L'area dell'oggetto BitmapData che è stata modificata. Se non specificate un valore per questo parametro, l'intera area dell'oggetto BitmapData viene considerata modificata. Questo parametro richiede Flash Player versione 9.0.115.0 o versione successiva.

Elementi API correlati


Esempio  ( Come utilizzare questo esempio )

L'esempio seguente crea un oggetto BitmapData in base alla proprietà bitmapData di un oggetto Bitmap di nome picture. Quindi, chiama il metodo lock() prima di chiamare una funzione personalizzata complessa, complexTransformation(), che modifica l'oggetto BitmapData. (L'oggetto picture e la funzione complexTransformation() non sono definiti in questo esempio.) Anche se la funzione complexTransformation() aggiorna la proprietà bitmapData dell'oggettopicture, le modifiche non vengono applicate fino a quando il codice non chiama il metodo unlock() sull'oggetto bitmapData:
import flash.display.BitmapData;

var bitmapData:BitmapData = picture.bitmapData;
bitmapData.lock();
bitmapData = complexTransformation(bitmapData);
bitmapData.unlock();
picture.bitmapData = bitmapData;
BitmapDataExample.as

L'esempio seguente utilizza la classe BitmapDataExample per caricare l'immagine Image.gif in DisplayObject nella posizione predefinita (0, 0). Una copia di Image.gif viene quindi posizionata alla destra dell'originale, a cui vengono applicati dei nuovi colori in corrispondenza dei pixel che superano una prova con il metodo threshold(). Per effettuare questa operazione, eseguire i passaggi descritti:
  1. Viene creata una proprietà url, che corrisponde alla posizione e al nome del file di immagine.
  2. La funzione di costruzione della classe crea un oggetto Loader, il quale crea quindi un'istanza di un listener di eventi che viene inviata quando il metodo completeHandler() completa la manipolazione delle immagini.
  3. L'oggetto URLRequest request viene quindi passato a loader.load(), che carica l'immagine in memoria utilizzando un oggetto di visualizzazione.
  4. L'immagine viene quindi posizionata nell'elenco di visualizzazione, che visualizza l'immagine sullo schermo in corrispondenza delle coordinate x = 0, y = 0.
  5. Il metodo completeHandler() esegue quindi le seguenti operazioni:
    • Crea un secondo Loader, insieme a un oggetto Bitmap, il quale viene inizializzato con l'oggetto Loader.
    • Crea un secondo oggetto Bitmap, duplicate, che a propria volta chiama il metodo duplicateImage(), che crea un duplicato dell'immagine originale.
    • Crea un nuovo oggetto BitmapData che viene assegnato all'oggetto BitmapData dell'oggetto duplicate.
    • Crea un nuovo oggetto Rectangle inizializzato con le stesse coordinate e gli stessi valori di larghezza e altezza dell'immagine originale.
    • Crea un nuovo oggetto Point, che ha come valore predefinito x = 0, y = 0.
    • Crea le variabili seguenti:
      • operation — Applica il nuovo colore quando il valore di soglia è superiore o uguale all'originale.
      • threshold — Il valore rispetto al quale viene confrontato ogni pixel (in questo esempio, il grigio chiaro con un'impostazione alfa pari a 0xCC).
      • color — Il colore su cui sono impostati i pixel per passare la prova della soglia (in questo caso, giallo uniforme).
      • mask — L'esatto opposto del colore (blu trasparente).
      • copySource — Impostata su false, indica che i valori dei pixel non vengono copiati se il valore di soglia non viene superato. Questo valore non ha alcun significato poiché l'immagine viene duplicata e vengono modificati solo i pixel che passano la prova della soglia.
    • Chiama il metodo threshold() mediante le variabili che lo precedono. L'equazione della soglia risultante è la seguente: if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Note:

  • È necessario compilare il file SWF con Sicurezza riproduzione locale impostato su Accedi solo ai file locali.
  • Questo esempio richiede che un file di nome Image.gif venga collocato nella stessa directory del file SWF.
  • Si consiglia di utilizzare un'immagine con una larghezza massima di circa 80 pixel.

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);
        }
    }
}
BitmapDataExample2.as





[ X ]Perché in inglese?
Il contenuto della Guida di riferimento di ActionScript 3.0 appare in inglese

Non tutte le parti della Guida di riferimento di ActionScript 3.0 sono tradotte in tutte le lingue. Quando un elemento del linguaggio non è tradotto, viene riportato in inglese. Ad esempio, la classe ga.controls.HelpBox non è tradotta in nessuna lingua. Pertanto, nella versione italiana della guida di riferimento, la descrizione della classe ga.controls.HelpBox è riportata in inglese.