Adobe® Flash® Platform용 ActionScript® 3.0 참조 설명서
 |  패키지 및 클래스 목록 숨기기 |  패키지  |  클래스  |  새로운 내용  |  색인  |  부록  |  영어로 표시되는 이유
필터: AIR 30.0 이하, Flash Player 30.0 이하, Flash Lite 4
Flex 4.6 이하, Flash Pro CS6 이하
필터 숨기기
flash.display 

BitmapData  - AS3

패키지x

최상위 레벨
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

언어 요소

전역 상수
전역 함수
연산자
명령문, 키워드 및 지시문
특수 유형 연산자

부록

새로운 내용
컴파일러 오류
컴파일러 경고
런타임 오류
ActionScript 3으로 마이그레이션
지원되는 문자 세트
MXML 전용 태그
모션 XML 요소
Timed Text 태그
사용되지 않는 요소의 목록
액세스 가능성 구현 상수
ActionScript 예제 사용 방법
법적 고지 사항
패키지flash.display
클래스public class BitmapData
상속BitmapData Inheritance Object
구현 IBitmapDrawable

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

BitmapData 클래스를 사용하면 Bitmap 객체의 데이터(픽셀)를 처리할 수 있습니다. BitmapData 클래스의 메서드를 사용하여 임의의 크기로 투명 또는 불투명 비트맵 이미지를 만들고 런타임 시 다양한 방식으로 이를 조작할 수 있습니다. BitmapData에서는 flash.display.Loader 클래스를 통해 로드한 비트맵 이미지에도 액세스할 수 있습니다.

이 클래스를 사용하면 비트맵 렌더링 작업을 Flash Player의 내부 표시 업데이트 루틴과 분리할 수 있습니다. BitmapData 객체를 직접 조작함으로써 매 프레임마다 벡터 데이터에서 내용을 반복해서 그려야 하는 수고 없이도 복잡한 이미지를 만들 수 있습니다.

BitmapData 클래스의 메서드는 비트맵 이외의 표시 객체에서 필터를 통해 얻을 수 없는 효과를 지원합니다.

BitmapData 객체에는 일련의 픽셀 데이터가 포함되어 있습니다. 이 데이터는 완전 불투명 비트맵을 나타낼 수도 있고 알파 채널 데이터가 포함된 투명 비트맵을 나타낼 수도 있습니다. 둘 중 어느 유형이든 BitmapData 객체는 32비트 정수의 버퍼로 저장됩니다. 각각의 32비트 정수는 비트맵에 포함된 단일 픽셀의 속성을 결정합니다.

각각의 32비트 정수는 해당 픽셀의 ARGB(알파 투명도, 빨강, 녹색, 파랑) 값을 기술하는 8비트의 채널 값(0 ~ 255) 네 개가 합쳐진 것입니다. ARGB 값에서 최상위 바이트는 알파 채널 값을 나타내며 빨강, 녹색 및 파랑이 이어집니다.

네 가지 채널(알파, 빨강, 녹색 및 파랑)은 BitmapData.copyChannel() 메서드 또는 DisplacementMapFilter.componentXDisplacementMapFilter.componentY 속성과 함께 사용할 경우 숫자로 표시되며, 이 숫자는 BitmapDataChannel 클래스에서 다음 상수로 표시됩니다.

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

BitmapData 객체의 bitmapData 속성을 사용하여 BitmapData 객체를 Bitmap 객체에 연결할 수 있습니다.

Graphics.beginBitmapFill() 메서드를 사용하여 BitmapData 객체를 통해 Graphics 객체를 채울 수 있습니다.

AIR 런타임에서 각 DockIcon, Icon, InteractiveIcon 및 SystemTrayIcon 클래스에는 아이콘의 비트맵 이미지를 정의하는 BitmapData 객체의 배열인 bitmaps 속성이 들어 있습니다.

AIR 1.5 및 Flash Player 10에서는 BitmapData 객체의 최대 크기가 8,191픽셀(폭 또는 높이)이며 총 픽셀 수는 16,777,215픽셀을 초과할 수 없습니다. 따라서 BitmapData 객체의 폭이 8,191픽셀이면 높이가 2,048픽셀 이하여야 합니다. Flash Player 9 이전 버전 및 AIR 1.1 이전 버전에서는 이 제한이 높이 2,880픽셀 및 폭 2,880픽셀입니다.

AIR 3 및 Flash player 11부터는 BitmapData 객체의 크기 제한이 없어졌습니다. 이제 비트맵의 최대 크기는 운영 체제에 따라 결정됩니다.

BitmapData 객체가 유효하지 않거나(예: height == 0width == 0인 경우) dispose()를 통해 해제된 경우, BitmapData 객체의 메서드나 속성을 호출하면 ArgumentError 오류가 발생합니다.

예제 보기

관련 API 요소



공용 속성
 속성정의 주체
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  height : int
[읽기 전용] 비트맵 이미지의 높이(픽셀 단위)입니다.
BitmapData
  rect : Rectangle
[읽기 전용] 비트맵 이미지의 크기와 위치를 정의하는 사각형입니다.
BitmapData
  transparent : Boolean
[읽기 전용] 비트맵 이미지에서 픽셀별 투명도를 지원하는지 여부를 정의합니다.
BitmapData
  width : int
[읽기 전용] 비트맵 이미지의 폭(픽셀 단위)입니다.
BitmapData
공용 메서드
 메서드정의 주체
  
BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
지정된 폭과 높이로 BitmapData 객체를 만듭니다.
BitmapData
  
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
소스 이미지와 filter 객체를 사용하여 필터링된 이미지를 생성합니다.
BitmapData
  
원본 인스턴스를 내포된 비트맵까지 똑같이 복제한 새 BitmapData 객체를 반환합니다.
BitmapData
  
ColorTransform 객체를 사용하여 비트맵 이미지의 지정된 영역에서 색상 값을 조정합니다.
BitmapData
  
compare(otherBitmapData:BitmapData):Object
두 BitmapData 객체를 비교합니다.
BitmapData
  
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
현재 BitmapData 객체나 다른 BitmapData 객체의 채널에서 현재 BitmapData 객체의 채널로 데이터를 이전합니다.
BitmapData
  
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
연장 효과나 회전 효과 또는 색상 효과 없이 이미지에서 픽셀을 조작할 수 있는 빠른 경로를 제공합니다.
BitmapData
  
픽셀 데이터의 사각형 영역에서 바이트 배열을 채웁니다.
BitmapData
  
BitmapData 객체를 저장하는 데 사용된 메모리를 비웁니다.
BitmapData
  
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Flash 런타임 벡터 렌더러를 사용하여 비트맵 이미지에 source 표시 객체를 그립니다.
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
Flash 런타임 벡터 렌더러를 사용하여 비트맵 이미지에 source 표시 객체를 그립니다.
BitmapData
  
encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray
선택한 압축 알고리즘을 사용하여 이 BitmapData 객체를 압축하고 새 ByteArray 객체를 반환합니다.
BitmapData
  
사각형의 픽셀 영역을 지정된 ARGB 색상으로 채웁니다.
BitmapData
  
floodFill(x:int, y:int, color:uint):void
(x, y) 좌표에서 시작하는 이미지에서 색상 채우기 작업을 수행하여 특정 색상으로 채웁니다.
BitmapData
  
지정된 BitmapData 객체와 소스 사각형 및 필터 객체를 기준으로 applyFilter() 메서드 호출이 적용될 대상 사각형을 결정합니다.
BitmapData
  
getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
사각형 영역이 비트맵 이미지 내에서 지정된 색상의 모든 픽셀을 포함할지(findColor 매개 변수가 true로 설정된 경우) 또는 지정된 색상을 제외한 모든 픽셀을 포함할지(findColor 매개 변수가 false로 설정된 경우)를 결정합니다.
BitmapData
  
특정 지점(x, y)에서 BitmapData 객체의 RGB 픽셀 값을 나타내는 정수를 반환합니다.
BitmapData
  
알파 채널 데이터와 RGB 데이터를 포함하는 ARGB 색상 값을 반환합니다.
BitmapData
  
픽셀 데이터의 사각형 영역에서 바이트 배열을 생성합니다.
BitmapData
  
픽셀 데이터의 사각형 영역에서 벡터 배열을 생성합니다.
BitmapData
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
  
BitmapData 객체의 256 값 이진 숫자 막대 그래프를 계산합니다.
BitmapData
  
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
하나의 비트맵 이미지와 특정한 점, 사각형 또는 다른 비트맵 이미지 간의 픽셀 수준 히트 감지를 수행합니다.
BitmapData
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
  
이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 어떤 객체(예: Bitmap 객체)도 업데이트되지 않도록 이미지를 잠급니다.
BitmapData
  
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
소스 이미지에서 대상 이미지로 채널별 블렌드를 수행합니다.
BitmapData
  
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
임의의 노이즈를 나타내는 픽셀로 이미지를 채웁니다.
BitmapData
  
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
각 채널에 하나씩 최대 네 개까지의 색상 팔레트 데이터 배열이 있는 이미지에서 색상 채널 값을 다시 매핑합니다.
BitmapData
  
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Perlin 노이즈 이미지를 생성합니다.
BitmapData
  
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
소스 이미지에서 대상 이미지로, 혹은 같은 이미지를 사용하여 픽셀 디졸브(dissolve)를 수행합니다.
BitmapData
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
  
특정 (x, y) 픽셀 양만큼 이미지를 스크롤합니다.
BitmapData
  
setPixel(x:int, y:int, color:uint):void
BitmapData 객체의 단일 픽셀을 설정합니다.
BitmapData
  
setPixel32(x:int, y:int, color:uint):void
BitmapData 객체의 단일 픽셀에 대한 색상 및 알파 투명도 값을 설정합니다.
BitmapData
  
setPixels(rect:Rectangle, inputByteArray:ByteArray):void
바이트 배열을 픽셀 데이터의 사각형 영역으로 변환합니다.
BitmapData
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
setVector(rect:Rectangle, inputVector:Vector.<uint>):void
벡터를 픽셀 데이터의 사각형 영역으로 변환합니다.
BitmapData
  
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
이미지의 픽셀 값을 지정된 임계값 기준으로 테스트하고 그 테스트를 통과한 픽셀을 새 색상 값으로 설정합니다.
BitmapData
 Inherited
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
  
unlock(changeRect:Rectangle = null):void
이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 임의의 객체(예: Bitmap 객체)도 업데이트되도록 이미지 잠금을 해제합니다.
BitmapData
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 세부 정보

height

속성
height:int  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

비트맵 이미지의 높이(픽셀 단위)입니다.



구현
    public function get height():int

rect

속성 
rect:Rectangle  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

비트맵 이미지의 크기와 위치를 정의하는 사각형입니다. 사각형의 맨 위와 왼쪽은 0입니다. 사각형의 폭과 높이는 BitmapData 객체의 폭과 높이와 같고 단위는 픽셀입니다.



구현
    public function get rect():Rectangle

transparent

속성 
transparent:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

비트맵 이미지에서 픽셀별 투명도를 지원하는지 여부를 정의합니다. 생성자의 transparent 매개 변수에 true를 전달하여 BitmapData 객체를 생성하는 경우에만 이 값을 설정할 수 있습니다. BitmapData 객체를 만든 후 transparent 속성 값이 true인지 확인하여 객체가 픽셀별 투명도를 지원하는지 여부를 확인할 수 있습니다.



구현
    public function get transparent():Boolean

width

속성 
width:int  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

비트맵 이미지의 폭(픽셀 단위)입니다.



구현
    public function get width():int
생성자 세부 정보

BitmapData

()생성자
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

지정된 폭과 높이로 BitmapData 객체를 만듭니다. fillColor 매개 변수에 값을 지정하면 비트맵의 모든 픽셀이 해당 색상으로 설정됩니다.

transparent 매개 변수 값으로 false를 전달하지 않는 한, 기본적으로 비트맵은 투명하게 만들어집니다. 불투명 비트맵을 만든 후에는 이를 투명 비트맵으로 변경할 수 없습니다. 불투명 비트맵의 모든 픽셀에서는 24비트 색상 채널 정보만 사용합니다. 비트맵을 투명으로 정의한 경우에는 각 픽셀에서 알파 투명도 채널을 포함하여 32비트 색상 채널 정보를 사용합니다.

AIR 1.5 및 Flash Player 10에서는 BitmapData 객체의 최대 크기가 8,191픽셀(폭 또는 높이)이며 총 픽셀 수는 16,777,215픽셀을 초과할 수 없습니다. 따라서 BitmapData 객체의 폭이 8,191픽셀이면 높이가 2,048픽셀 이하여야 합니다. Flash Player 9 이전 버전 및 AIR 1.1 이전 버전에서는 이 제한이 높이 2,880픽셀 및 폭 2,880픽셀입니다. 폭이나 높이를 2,880보다 큰 값으로 지정하는 경우 새 인스턴스는 생성되지 않습니다.

매개 변수
width:int — 비트맵 이미지의 폭(픽셀 단위)입니다.
 
height:int — 비트맵 이미지의 높이(픽셀 단위)입니다.
 
transparent:Boolean (default = true) — 비트맵 이미지의 픽셀별 투명도 지원 여부를 지정합니다. 기본값은 true(투명)입니다. 완전히 투명한 비트맵을 만들려면 transparent 매개 변수 값을 true로 설정하고 fillColor 매개 변수 값을 0x00000000(또는 0)으로 설정합니다. transparent 속성을 false로 설정하면 렌더링 성능이 약간 향상될 수 있습니다.
 
fillColor:uint (default = 0xFFFFFFFF) — 비트맵 이미지 영역을 채울 때 사용하는 32비트 ARGB 색상 값입니다. 기본값은 0xFFFFFFFF(흰색)입니다.

오류
ArgumentError — 폭 및/또는 높이가 최대 크기를 초과하는 경우입니다.
메서드 세부 정보

applyFilter

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

소스 이미지와 filter 객체를 사용하여 필터링된 이미지를 생성합니다.

이 메서드는 내장 필터 객체의 비헤이비어를 통해 입력 소스 사각형의 영향을 받는 대상 사각형을 결정합니다.

필터링을 거친 후 생성되는 이미지가 원래의 이미지보다 더 클 수도 있습니다. 예를 들어 BlurFilter 클래스를 사용하여 (50,50,100,100)의 소스 사각형 및 (10,10)의 대상 지점을 흐리게 처리하면, 대상 이미지에서 변경된 영역은 흐리게 처리하기 효과 때문에 (10,10,60,60)보다 커집니다. 이 같은 변화는 applyFilter() 호출 과정에서 내부적으로 발생합니다.

sourceBitmapData 매개 변수의 sourceRect 매개 변수가 200 x 200 이미지에서 (50,50,100,100)의 경우처럼 내부 영역인 경우, 필터는 sourceRect 매개 변수 외부에서 소스 픽셀을 사용하여 대상 사각형을 생성합니다.

BitmapData 객체와 sourceBitmapData 매개 변수로 지정된 객체가 동일한 객체인 경우, 응용 프로그램에서는 객체의 임시 복사본을 사용하여 필터를 수행합니다. 최상의 성능을 위해 이러한 상황은 피해야 합니다.

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 현재의 BitmapData 인스턴스를 가리킬 수도 있고 혹은 다른 BitmapData 객체가 될 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 소스 사각형의 왼쪽 위 모서리에 해당하는 대상 이미지(현재 BitmapData 인스턴스) 내부의 점입니다.
 
filter:BitmapFilter — 필터링 작업을 수행하는 데 사용할 filter 객체입니다. 다음과 같이 각각의 필터 유형별로 요구 사항이 다릅니다.
  • BlurFilter - 이 필터는 소스 및 대상 이미지로 불투명하거나 투명한 이미지를 사용할 수 있습니다. 두 이미지의 형식이 서로 일치하지 않는 경우, 필터링 과정에서 만들어진 소스 이미지의 복사본은 대상 이미지의 형식과 일치합니다.
  • BevelFilter, DropShadowFilter, GlowFilter - 이 필터의 대상 이미지는 투명 이미지여야 합니다. DropShadowFilter 또는 GlowFilter를 호출하면 드롭 그림자나 광선에 대한 알파 채널 데이터가 포함된 이미지가 생성됩니다. 대상 이미지 위에 드롭 그림자가 생성되는 것은 아닙니다. 불투명 대상 이미지에서 이 필터 중 하나를 사용하면 예외가 발생합니다.
  • ConvolutionFilter - 이 필터는 투명한 이미지나 불투명한 이미지 모두 소스 및 대상 이미지로 사용할 수 있습니다.
  • ColorMatrixFilter - 이 필터는 투명한 이미지나 불투명한 이미지 모두 소스 및 대상 이미지로 사용할 수 있습니다.
  • DisplacementMapFilter - 이 필터는 소스 및 대상 이미지로 불투명하거나 투명한 이미지를 사용할 수 있지만, 두 이미지의 형식이 동일해야 합니다.


오류
TypeError — sourceBitmapData, sourceRect, destPoint 또는 filter가 null입니다.
 
IllegalOperationError — BitmapData 객체의 투명도가 필터 작업과 호환되지 않습니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 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

()메서드 
public function clone():BitmapData

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

원본 인스턴스를 내포된 비트맵까지 똑같이 복제한 새 BitmapData 객체를 반환합니다.

반환값
BitmapData — 원본과 동일한 새 BitmapData 객체입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 BitmapData 인스턴스를 복제하는 방법을 보여 주며, 복제된 인스턴스를 수정하더라도 원본은 수정되지 않은 채로 남아 있음을 알 수 있습니다.
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

()메서드 
public function colorTransform(rect:Rectangle, colorTransform:flash.geom:ColorTransform):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

ColorTransform 객체를 사용하여 비트맵 이미지에서 지정된 영역의 색상 값을 조절합니다. 비트맵 이미지의 경계선과 사각형이 일치하는 경우 이 메서드는 이미지 전체의 색상 값을 변환합니다.

매개 변수

rect:Rectangle — ColorTransform 객체가 적용될 이미지 영역을 정의하는 Rectangle 객체입니다.
 
colorTransform:flash.geom:ColorTransform — 적용할 색상 변환 값을 설명하는 ColorTransform 객체입니다.


오류
TypeError — rect 또는 colorTransform이 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 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

()메서드 
public function compare(otherBitmapData:BitmapData):Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

두 BitmapData 객체를 비교합니다. 두 BitmapData 객체의 크기(폭 및 높이)가 같은 경우 메서드는 새 BitmapData 객체를 반환하는데, 이 객체의 각 픽셀은 두 소스 객체의 픽셀 "차이"가 됩니다.

  • 두 픽셀이 동일하면 픽셀 차이는 0x00000000입니다.
  • 두 픽셀이 서로 다른 RGB 값을 가지면(알파 값 무시) 픽셀 차이는 0xRRGGBB이고 여기서 RR/GG/BB는 빨강, 녹색 및 파랑 채널 각각의 차이 값입니다(소스 객체의 픽셀 값에서 otherBitmapData 객체의 픽셀 값을 뺀 값). 이 경우에는 알파 채널 차이가 무시됩니다.
  • 알파 채널 값이 서로 다른 경우 픽셀 값은 0xZZFFFFFF이고 여기서 ZZ는 알파 값의 차이입니다(소스 객체의 알파 값에서 otherBitmapData 객체의 알파 값을 뺀 값).

예를 들어 다음 두 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
     

참고: 두 BitmapData 객체를 채우는 데 사용된 색상은 RGB 값이 약간 다릅니다(0xFF0000과 0xFFAA00). compare() 메서드의 결과는 각 픽셀이 두 비트맵의 RGB 값 차이를 나타내는 새 BitmapData 객체입니다.

다음 두 BitmapData 객체를 생각해 볼 수 있습니다. 여기서 RGB 색상은 동일하지만 알파 값이 다릅니다.

     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
     

compare() 메서드의 결과는 각 픽셀이 두 비트맵의 알파 값 차이를 나타내는 새 BitmapData 객체입니다.

BitmapData 객체가 동일하면(폭, 높이 및 픽셀 값이 같은 경우) 메서드는 숫자 0을 반환합니다.

BitmapData 객체의 폭이 동일하지 않으면 숫자 -3이 반환되고,

BitmapData 객체의 높이는 동일하지 않지만 폭이 같으면 메서드는 숫자 -4를 반환합니다.

다음 예제에서는 폭이 다른(50과 60) 두 Bitmap 객체를 비교합니다.

     var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000);
     var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00);
     trace(bmd1.compare(bmd2)); // -4
     

매개 변수

otherBitmapData:BitmapData — 소스 BitmapData 객체와 비교할 BitmapData 객체입니다.

반환값
Object — 두 BitmapData 객체의 크기(폭 및 높이)가 같은 경우 메서드는 두 객체 간의 차이를 나타내는 새 BitmapData 객체를 반환합니다(주요 설명 부분 참조). BitmapData 객체가 동일한 경우 숫자 0이 반환됩니다. BitmapData 객체의 폭이 동일하지 않으면 숫자 -3이 반환되고, BitmapData 객체의 높이가 동일하지 않으면 -4가 반환됩니다.

오류
TypeError — otherBitmapData가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 크기가 같은 두 BitmapData 객체를 비교한 결과로 생성되는 BitmapData 객체의 픽셀 값을 보여 줍니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

현재 BitmapData 객체나 다른 BitmapData 객체의 채널에서 현재 BitmapData 객체의 채널로 데이터를 이전합니다. 대상 BitmapData 객체의 다른 채널에 있는 모든 데이터는 그대로 보존됩니다.

소스 채널 값과 대상 채널 값은 다음 값 가운데 하나가 됩니다.

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

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 다른 BitmapData 객체가 될 수도 있고 현재 BitmapData 객체를 참조할 수도 있습니다.
 
sourceRect:Rectangle — 소스 Rectangle 객체입니다. 비트맵 내의 더 작은 영역에서 채널 데이터만 복사하려면 BitmapData 객체의 전체 크기보다 더 작은 소스 사각형을 지정합니다.
 
destPoint:Point — 새 채널 데이터가 위치할 사각형 영역의 왼쪽 위 모서리를 나타내는 대상 Point 객체입니다. 한 영역에서 대상 이미지 내의 다른 영역으로 채널 데이터를 복사하려면 (0,0) 이외의 점을 지정합니다.
 
sourceChannel:uint — 소스 채널입니다. BitmapDataChannel 클래스의 값(BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA)을 사용합니다.
 
destChannel:uint — 대상 채널입니다. BitmapDataChannel 클래스의 값(BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA)을 사용합니다.


오류
TypeError — sourceBitmapData, sourceRect 또는 destPoint가 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 20 x 20픽셀 영역에서 BitmapData 객체의 빨강 채널을 같은 객체의 파랑 채널로 복사하는 방법을 보여 줍니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

연장 효과나 회전 효과 또는 색상 효과 없이 이미지에서 픽셀을 조작할 수 있는 빠른 경로를 제공합니다. 이 메서드는 소스 이미지의 사각형 영역을 대상 BitmapData 객체의 대상 지점에서 같은 크기의 사각형 영역에 복사합니다.

alphaBitmapalphaPoint 매개 변수를 포함시키면 복사본 이미지를 소스 이미지의 알파 소스로 사용할 수 있습니다. 소스 이미지가 알파 데이터를 가지고 있는 경우 두 가지 알파 데이터 모두 소스 이미지에서 대상 이미지로 픽셀을 합성하는 데 사용됩니다. alphaPoint 매개 변수는 알파 이미지에서 소스 사각형의 왼쪽 위 모서리에 해당하는 점입니다. 소스 이미지와 알파 이미지의 교점 밖에 있는 픽셀은 대상 이미지로 복사되지 않습니다.

mergeAlpha 속성은 투명 이미지를 다른 투명 이미지 위에 복사할 때 알파 채널을 사용할 것인지 여부를 제어합니다. 알파 채널 데이터와 함께 픽셀을 복사하려면 mergeAlpha 속성을 true로 설정합니다. 기본적으로 mergeAlpha 속성은 false입니다.

매개 변수

sourceBitmapData:BitmapData — 픽셀을 복사해 올 입력 비트맵 이미지입니다. 소스 이미지는 현재의 BitmapData 인스턴스를 참조할 수도 있고 다른 BitmapData 인스턴스가 될 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 새 픽셀이 위치할 사각형 영역의 왼쪽 위 모서리를 표시하는 대상 지점입니다.
 
alphaBitmapData:BitmapData (default = null) — 복사본 알파 BitmapData 객체 소스입니다.
 
alphaPoint:Point (default = null) — 알파 BitmapData 객체 소스의 점으로서, sourceRect 매개 변수의 왼쪽 위 모서리에 해당됩니다.
 
mergeAlpha:Boolean (default = false) — 알파 채널을 사용하려면 값을 true로 설정합니다. 알파 채널을 사용하지 않고 픽셀을 복사하려면 값을 false로 설정합니다.


오류
TypeError — sourceBitmapData, sourceRect 및 destPoint가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 한 BitmapData 객체의 20 x 20픽셀 영역에서 다른 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

()메서드 
public function copyPixelsToByteArray(rect:Rectangle, data:ByteArray):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 11.4, AIR 3.4

픽셀 데이터의 사각형 영역에서 바이트 배열을 채웁니다. 이 메서드는 ByteArray의 position 색인부터 픽셀별로 부호 없는 정수(곱하지 않은 32비트 픽셀 값)를 바이트 배열에 씁니다. 필요한 경우 모든 바이트 배열의 크기가 픽셀 데이터를 유지하는 데 필요한 바이트 수까지 증가합니다.

매개 변수

rect:Rectangle — 현재 BitmapData 객체의 사각형 영역입니다
 
data:ByteArray — 대상 ByteArray 객체입니다.


오류
TypeError rect 인수가 null이거나 data 인수가 null인 경우입니다.

관련 API 요소

dispose

()메서드 
public function dispose():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

BitmapData 객체를 저장하는 데 사용된 메모리를 비웁니다.

dispose() 메서드가 호출되면 해당 이미지의 폭과 높이가 0으로 설정됩니다. 이후로 이 BitmapData 인스턴스의 메서드나 속성에 대한 호출은 모두 실패하며 예외가 발생됩니다.

BitmapData.dispose()는 실제 비트맵 데이터가 차지한 메모리를 즉시 해제합니다(하나의 비트맵은 최대 64MB의 메모리를 사용할 수 있음). BitmapData.dispose()를 사용한 후에는 BitmapData 객체를 더 이상 사용할 수 없으므로 BitmapData 객체에 대한 함수를 호출하면 Flash 런타임에서 예외가 발생합니다. 그러나 BitmapData.dispose()는 BitmapData 객체(약 128바이트)를 대상으로 가비지 수집을 수행하지 않습니다. 따라서 실제 BitmapData 객체가 차지한 메모리는 BitmapData 객체가 가비지 수집기에 의해 수집될 때 해제됩니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 dispose() 메서드를 호출한 뒤 BitmapData 객체의 메서드를 호출한 결과를 보여 줍니다(예외 발생).
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

Flash 런타임 벡터 렌더러를 사용하여 비트맵 이미지에 source 표시 객체를 그립니다. matrix, colorTransform, blendMode 및 대상 clipRect 매개 변수를 지정하면 렌더링 수행 방식을 제어할 수 있습니다. 또한, 비트맵의 크기를 조절할 때 매끄럽게 할 것인지 여부를 선택적으로 지정할 수 있습니다(소스 객체가 BitmapData 객체인 경우에만 적용됨).

참고: drawWithQuality() 메서드는 draw() 메서드와 똑같이 작동합니다. 하지만 벡터 렌더링의 품질을 결정하기 위해 Stage.quality 속성을 사용하는 대신, drawWithQuality() 메서드에 대해 quality 매개 변수를 지정합니다.

이 메서드는 제작 도구 인터페이스에서 객체용 표준 벡터 렌더러를 통해 객체가 그려지는 방식과 직접 연관되어 있습니다.

이 메서드를 호출했을 때 소스 표시 객체는 적용된 변환을 전혀 사용하지 않습니다. 행렬 변환이나 색상 변환, 블렌드 모드 없이, 마치 라이브러리나 파일 내에 존재하는 것처럼 취급됩니다. 자체 변환 속성을 사용하여 동영상 클립과 같은 표시 객체를 그리기 위해 BitmapData 객체를 사용하는 Bitmap 객체의 transform 속성에 해당 transform 속성 객체를 복사할 수 있습니다.

이 메서드는 Flash Player 9.0.115.0 이상 및 Adobe AIR의 RTMP에서 지원됩니다. 서버측 스크립트에서 Flash Media Server의 스트림에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 Adobe Flash Media Server용 서버 측 ActionScript 언어 참조에서 Client.audioSampleAccessClient.videoSampleAccess 속성을 참조하십시오.

source 객체 및 해당하는 모든 자식 객체(Sprite 또는 MovieClip 객체의 경우)가 호출자와 동일한 도메인에서 시작되지 않거나 Security.allowDomain() 메서드를 호출하여 호출자에 액세스할 수 있는 내용에 있지 않은 경우 draw()에 대한 호출은 SecurityError를 발생시킵니다. 이 제한은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.

로드된 비트맵 이미지를 source로 사용할 때에도 제한 사항이 적용됩니다. draw() 메서드에 대한 호출은 로드된 이미지를 호출자와 동일한 도메인에서 가져오는 경우 성공합니다. 또한 이미지의 서버에 있는 크로스 도메인 정책 파일이 draw() 메서드를 호출하는 SWF 내용의 도메인에 권한을 부여할 수 있습니다. 이 경우 LoaderContext 객체의 checkPolicyFile 속성을 설정하고 이미지를 로드하는 데 사용되는 Loader 객체의 load() 메서드를 호출할 때 LoaderContext 객체를 context 매개 변수로 사용해야 합니다. 이러한 제한 사항은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.

Windows에서 draw() 메서드는 Adobe AIR의 HTMLLoader 객체에 있는 HTML 페이지에 포함된 SWF 내용을 캡처할 수 없습니다.

draw() 메서드는 Adobe AIR의 PDF 내용을 캡처할 수 없습니다. 또한 이 메서드는 Adobe AIRwmode 특성이 "window"로 설정되어 있는 HTML에 포함된 SWF 내용을 캡처할 수 없습니다.

매개 변수

source:IBitmapDrawable — BitmapData 객체에 그릴 표시 객체 또는 BitmapData 객체입니다 DisplayObject 및 BitmapData 클래스는 IBitmapDrawable 인터페이스를 구현합니다.
 
matrix:Matrix (default = null) — 비트맵 좌표의 크기 조절, 회전 또는 평행 이동에 사용되는 Matrix 객체입니다. 이미지에 행렬 변환을 적용하지 않으려면 이 매개 변수를 기본 new Matrix() 생성자를 통해 만든 단위 행렬로 설정하거나 null 값으로 설정합니다.
 
colorTransform:flash.geom:ColorTransform (default = null) — 비트맵의 색상 값 조정에 사용하는 ColorTransform 객체입니다. 제공된 객체가 없으면 비트맵 이미지의 색상이 변환되지 않습니다. 이 매개 변수를 전달하고 이미지는 변환하지 않으려면, 이 매개 변수를 기본 new ColorTransform() 생성자를 통해 만든 ColorTransform 객체로 설정합니다.
 
blendMode:String (default = null) — flash.display.BlendMode 클래스에서 얻은 문자열 값으로, 결과 비트맵에 적용될 블렌드 모드를 지정합니다.
 
clipRect:Rectangle (default = null) — 소스 객체에서 그릴 영역을 정의하는 Rectangle 객체입니다. 이 값을 제공하지 않으면 어떤 클리핑도 발생하지 않으며 소스 객체 전체가 그려집니다.
 
smoothing:Boolean (default = false)matrix 매개 변수의 크기 또는 회전으로 인해 BitmapData 객체의 크기를 조절하거나 회전할 때 매끄럽게 다듬을 것인지 여부를 결정하는 부울 값입니다. smoothing 매개 변수는 source 매개 변수가 BitmapData 객체인 경우에만 적용됩니다. smoothingfalse로 설정하면 회전하거나 크기를 조절한 BitmapData 이미지가 들쭉날쭉한 픽셀로 표시됩니다. 예를 들어 다음 두 이미지가 source 매개 변수에 대해 동일한 BitmapData 객체를 사용하지만, smoothing 매개 변수가 true(왼쪽) 및 false(오른쪽)로 설정됩니다.

두 개의 이미지, 즉 매끄러움이 설정된 왼쪽 이미지 하나와 매끄러움이 설정되지 않은 오른쪽 이미지 하나입니다.

비트맵을 그릴 때 smoothingtrue로 설정하면 smoothingfalse로 설정할 때보다 오래 걸립니다.


오류
ArgumentError source 매개 변수가 BitmapData 또는 DisplayObject 객체가 아닙니다.
 
SecurityError source 객체 및 해당하는 모든 자식 객체(Sprite 또는 MovieClip 객체의 경우)가 호출자와 동일한 도메인에 있지 않거나 호출자가 Security.allowDomain() 메서드를 호출하여 액세스할 수 있는 내용에 있지 않습니다. 이 제한은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.
 
ArgumentError — 소스가 null이거나 유효한 IBitmapDrawable 객체가 아닙니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 BitmapData 객체에 TextField 객체를 그리는 방법을 보여 줍니다.
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

()메서드 
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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 11.3, AIR 3.3

Flash 런타임 벡터 렌더러를 사용하여 비트맵 이미지에 source 표시 객체를 그립니다. matrix, colorTransform, blendMode 및 대상 clipRect 매개 변수를 지정하면 렌더링 수행 방식을 제어할 수 있습니다. 또한, 비트맵의 크기를 조절할 때 매끄럽게 할 것인지 여부를 선택적으로 지정할 수 있습니다(소스 객체가 BitmapData 객체인 경우에만 적용됨).

참고: drawWithQuality() 메서드는 draw() 메서드와 똑같이 작동합니다. 하지만 벡터 렌더링의 품질을 결정하기 위해 Stage.quality 속성을 사용하는 대신, drawWithQuality() 메서드에 대해 quality 매개 변수를 지정합니다.

이 메서드는 제작 도구 인터페이스에서 객체용 표준 벡터 렌더러를 통해 객체가 그려지는 방식과 직접 연관되어 있습니다.

이 메서드를 호출했을 때 소스 표시 객체는 적용된 변환을 전혀 사용하지 않습니다. 행렬 변환이나 색상 변환, 블렌드 모드 없이, 마치 라이브러리나 파일 내에 존재하는 것처럼 취급됩니다. 자체 변환 속성을 사용하여 동영상 클립과 같은 표시 객체를 그리기 위해 BitmapData 객체를 사용하는 Bitmap 객체의 transform 속성에 해당 transform 속성 객체를 복사할 수 있습니다.

이 메서드는 Flash Player 9.0.115.0 이상 및 Adobe AIR의 RTMP에서 지원됩니다. 서버측 스크립트에서 Flash Media Server의 스트림에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 Client.audioSampleAccessClient.videoSampleAccess 속성(Adobe Flash Media Server용 서버측 ActionScript 언어 참조 설명서)을 참조하십시오.

source 객체 및 해당하는 모든 자식 객체(Sprite 또는 MovieClip 객체의 경우)가 호출자와 동일한 도메인에 속해 있거나, Security.allowDomain() 메서드를 호출하여 호출자에 액세스할 수 있는 내용에 있지 않은 경우 drawWithQuality()를 호출하면 SecurityError 예외가 발생합니다. 이 제한은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.

로드된 비트맵 이미지를 source로 사용할 때에도 제한 사항이 적용됩니다. 로드된 이미지가 호출자와 동일한 도메인에 속해 있으면 drawWithQuality() 메서드를 호출할 수 있습니다. 또한 이미지의 서버에 있는 크로스 도메인 정책 파일은 drawWithQuality() 메서드를 호출하는 SWF 내용의 도메인에 대한 권한을 부여할 수 있습니다. 이 경우 LoaderContext 객체의 checkPolicyFile 속성을 설정하고 이미지를 로드하는 데 사용되는 Loader 객체의 load() 메서드를 호출할 때 LoaderContext 객체를 context 매개 변수로 사용해야 합니다. 이러한 제한 사항은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.

Windows에서 drawWithQuality() 메서드는 Adobe AIR의 HTMLLoader 객체에 있는 HTML 페이지에 포함된 SWF 내용을 캡처할 수 없습니다.

drawWithQuality() 메서드는 Adobe AIR의 PDF 내용을 캡처할 수 없습니다. 또한 이 메서드는 Adobe AIRwmode 특성이 "window"로 설정되어 있는 HTML에 포함된 SWF 내용을 캡처할 수 없습니다.

매개 변수

source:IBitmapDrawable — BitmapData 객체에 그릴 표시 객체 또는 BitmapData 객체입니다 DisplayObject 및 BitmapData 클래스는 IBitmapDrawable 인터페이스를 구현합니다.
 
matrix:Matrix (default = null) — 비트맵 좌표의 크기 조절, 회전 또는 평행 이동에 사용되는 Matrix 객체입니다. 이미지에 행렬 변환을 적용하지 않으려면 이 매개 변수를 기본 new Matrix() 생성자를 통해 만든 단위 행렬로 설정하거나 null 값으로 설정합니다.
 
colorTransform:flash.geom:ColorTransform (default = null) — 비트맵의 색상 값 조정에 사용하는 ColorTransform 객체입니다. 제공된 객체가 없으면 비트맵 이미지의 색상이 변환되지 않습니다. 이 매개 변수를 전달하고 이미지는 변환하지 않으려면, 이 매개 변수를 기본 new ColorTransform() 생성자를 통해 만든 ColorTransform 객체로 설정합니다.
 
blendMode:String (default = null) — flash.display.BlendMode 클래스에서 얻은 문자열 값으로, 결과 비트맵에 적용될 블렌드 모드를 지정합니다.
 
clipRect:Rectangle (default = null) — 소스 객체에서 그릴 영역을 정의하는 Rectangle 객체입니다. 이 값을 제공하지 않으면 어떤 클리핑도 발생하지 않으며 소스 객체 전체가 그려집니다.
 
smoothing:Boolean (default = false)matrix 매개 변수의 크기 또는 회전으로 인해 BitmapData 객체의 크기를 조절하거나 회전할 때 매끄럽게 다듬을 것인지 여부를 결정하는 부울 값입니다. smoothing 매개 변수는 source 매개 변수가 BitmapData 객체인 경우에만 적용됩니다. smoothingfalse로 설정하면 회전하거나 크기를 조절한 BitmapData 이미지가 들쭉날쭉한 픽셀로 표시됩니다. 예를 들어 다음 두 이미지가 source 매개 변수에 대해 동일한 BitmapData 객체를 사용하지만, smoothing 매개 변수가 true(왼쪽) 및 false(오른쪽)로 설정됩니다.

두 개의 이미지, 즉 매끄러움이 설정된 왼쪽 이미지 하나와 매끄러움이 설정되지 않은 오른쪽 이미지 하나입니다.

비트맵을 그릴 때 smoothingtrue로 설정하면 smoothingfalse로 설정할 때보다 오래 걸립니다.

 
quality:String (default = null) — StageQuality 값 중 하나입니다. 벡터 그래픽을 그릴 때 사용할 앤티앨리어싱 품질을 선택합니다.


오류
ArgumentError source 매개 변수가 BitmapData 또는 DisplayObject 객체가 아닙니다.
 
SecurityError source 객체 및 해당하는 모든 자식 객체(Sprite 또는 MovieClip 객체의 경우)가 호출자와 동일한 도메인에 있지 않거나 호출자가 Security.allowDomain() 메서드를 호출하여 액세스할 수 있는 내용에 있지 않습니다. 이 제한은 응용 프로그램 보안 샌드박스의 AIR 내용에 적용되지 않습니다.
 
ArgumentError — 소스가 null이거나 유효한 IBitmapDrawable 객체가 아닙니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 BitmapData 객체에 TextField 객체를 그리는 방법을 보여 줍니다.
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

()메서드 
public function encode(rect:Rectangle, compressor:Object, byteArray:ByteArray = null):ByteArray

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 11.3, AIR 3.3

선택한 압축 알고리즘을 사용하여 이 BitmapData 객체를 압축하고 새 ByteArray 객체를 반환합니다. 지정된 ByteArray에 결과 데이터를 쓸 수도 있습니다. compressor 인수는 인코딩 알고리즘을 지정하며, PNGEncoderOptions, JPEGEncoderOptions 또는 JPEGXREncoderOptions일 수 있습니다.

다음 예제에서는 JPEGEncoderOptions를 사용하여 BitmapData 객체를 압축합니다.

     // 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); 

매개 변수

rect:Rectangle — 압축할 BitmapData 객체의 영역입니다.
 
compressor:Object — 사용할 압축기 유형입니다. 사용할 수 있는 값은 다음과 같습니다. flash.display.PNGEncoderOptions, flash.display.JPEGEncoderOptionsflash.display.JPEGXREncoderOptions
 
byteArray:ByteArray (default = null) — 인코딩된 이미지를 유지할 출력 ByteArray입니다.

반환값
ByteArray — 인코딩된 이미지를 포함하는 ByteArray입니다.

관련 API 요소

fillRect

()메서드 
public function fillRect(rect:Rectangle, color:uint):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

사각형의 픽셀 영역을 지정된 ARGB 색상으로 채웁니다.

매개 변수

rect:Rectangle — 채울 사각형 영역입니다.
 
color:uint — 영역을 채울 ARGB 색상 값입니다. ARGB 색상은 0xFF336699 등과 같이 16진수 형식으로 지정되는 경우가 많습니다.


오류
TypeError — rect가 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 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

()메서드 
public function floodFill(x:int, y:int, color:uint):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

(x, y) 좌표에서 시작하는 이미지에 색상 채우기 작업을 수행하여 특정 색상으로 채웁니다. floodFill() 메서드는 다양한 페인팅 프로그램에서 제공하는 페인트 통 도구와 유사합니다. 색상은 알파 정보와 색상 정보가 포함된 ARGB 색상입니다.

매개 변수

x:int — 이미지의 x 좌표입니다.
 
y:int — 이미지의 y 좌표입니다.
 
color:uint — 채우기에 사용할 ARGB 색상입니다.


예제  ( 예제 사용 방법 )

다음 예제에서는 BitmapData 객체의 영역, 즉 점 (10, 10)에 의해 정의된 픽셀을 둘러싸며 모든 색상이 해당 점의 색상과 일치하는 영역을 빨강으로 채우는 방법을 보여 줍니다.
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

()메서드 
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

지정된 BitmapData 객체와 소스 사각형 및 필터 객체를 기준으로 applyFilter() 메서드 호출이 적용될 대상 사각형을 결정합니다.

예를 들어 흐리게 처리하기 필터가 적용되는 영역의 크기는 원본 이미지의 크기보다 더 큽니다. 기본 BlurFilter 인스턴스(blurX = blurY = 4)를 통해 필터링되는 100 x 200픽셀 이미지는 (-2,-2,104,204)의 대상 사각형을 생성합니다. generateFilterRect() 메서드를 사용하면 이처럼 대상 사각형의 크기를 미리 확인할 수 있으므로 필터 작업 전에 대상 이미지의 크기를 적절히 조절할 수 있습니다.

일부 필터는 소스 이미지의 크기를 기준으로 대상 사각형을 자릅니다. 예를 들어 내부 DropShadow를 사용하는 경우에는 소스 이미지보다 더 큰 이미지가 생성되지 않습니다. 이 API에서는 소스 rect 매개 변수가 아니라 BitmapData 객체를 소스 경계로 사용합니다.

매개 변수

sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
filter:BitmapFilter — 대상 사각형을 계산하는 데 사용할 필터 객체입니다.

반환값
Rectangle — 이미지, sourceRect 매개 변수 및 필터를 사용하여 계산된 대상 사각형입니다.

오류
TypeError — sourceRect 또는 필터가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 generateFilterRect() 메서드를 사용하여 흐림 필터 결과가 차지할 사각형 영역을 결정하는 방법을 보여 줍니다. generateFilterRect() 메서드의 결과는 trace() 함수에 의해 출력됩니다.
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.filters.BlurFilter;

var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00);
var rect:Rectangle = new Rectangle(10, 10, 40, 10);
bmd.fillRect(rect, 0xFF0000);

var pt:Point = new Point(10, 10);
var filter:BlurFilter = new BlurFilter();

trace(bmd.generateFilterRect(rect, filter));
// (x=8, y=8, w=44, h=14)

bmd.applyFilter(bmd, rect, pt, filter);
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);
generateFilterRect() 메서드는 필터를 적용하지 않습니다. 필터를 적용하려면 applyFilter() 메서드를 호출합니다.

getColorBoundsRect

()메서드 
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

비트맵 이미지 내에서 지정된 색상의 픽셀 전체를 완전히 감싸는 사각형 영역(findColor 매개 변수가 true로 설정된 경우) 또는 지정된 색상을 포함하지 않는 픽셀 전체를 완전히 감싸는 사각형 영역(findColor 매개 변수가 false로 설정된 경우)을 결정합니다.

예를 들어 소스 이미지에서 0이 아닌 알파 채널을 포함하는 사각형 이미지를 확인하려는 경우, {mask: 0xFF000000, color: 0x00000000}을 매개 변수로 전달합니다. findColor 매개 변수가 true로 설정된 경우 (value & mask) == color인 픽셀의 경계를 전체 이미지에서 검색합니다. 여기서 value는 픽셀의 색상 값입니다. findColor 매개 변수가 false로 설정된 경우 (value & mask) != color인 픽셀의 경계를 전체 이미지에서 검색합니다(여기서 value는 픽셀의 색상 값). 이미지 주위의 여백 공간을 확인하려면 {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}를 전달하여 흰색이 아닌 픽셀의 경계를 찾습니다.

매개 변수

mask:uint — 고려할 ARGB 색상 비트 수를 지정하는 16진수 값입니다. 색상 값은 &(bitwise AND) 연산자를 사용하여 이 16진수 값과 결합됩니다.
 
color:uint — 일치시키거나(findColortrue로 설정된 경우) 일치시키지 않을(findColorfalse로 설정된 경우) ARGB 색상을 지정하는 16진수 값입니다.
 
findColor:Boolean (default = true) — 값이 true로 설정된 경우 이미지에서 색상 값의 경계를 반환합니다. false로 설정된 경우에는 이미지에서 이 색상이 존재하지 않는 영역의 경계를 반환합니다.

반환값
Rectangle — 지정된 색상으로 구성된 이미지 영역입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 픽셀의 위 절반이 빨간색인 BitmapData 객체를 만듭니다. 그런 다음 getColorBoundsRect() 메서드를 호출하여 픽셀이 빨간색(0xFF0000)인 사각형을 확인하고, 동일한 메서드를 호출하여 픽셀이 빨간색이 아닌(findColor 매개 변수를 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

()메서드 
public function getPixel(x:int, y:int):uint

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

특정 지점(x, y)에서 BitmapData 객체의 RGB 픽셀 값을 나타내는 정수를 반환합니다. getPixel() 메서드는 곱하지 않은 픽셀 값을 반환합니다. 알파 정보는 반환되지 않습니다.

BitmapData 객체에 포함된 모든 픽셀은 미리 곱해진 색상 값으로 저장됩니다. 미리 곱해진 이미지 픽셀은 알파 데이터가 이미 곱해진 RGB(빨강, 녹색, 파랑) 색상 채널 값을 갖습니다. 예를 들어 알파 값이 0인 경우 RGB 채널 값도 곱해지지 않은 값에 상관없이 0이 됩니다. 이와 같은 데이터 손실로 인해 작업을 수행할 때 몇 가지 문제가 발생할 수 있습니다. 모든 BitmapData 메서드는 곱하지 않은 값을 사용하고 반환합니다. 내부 픽셀 표현은 미리 곱한 값을 곱하지 않은 값으로 변환한 이후에 값으로 반환됩니다. 픽셀 값은 설정 작업에서 원시 이미지 픽셀을 설정하기 전에 미리 곱해집니다.

매개 변수

x:int — 픽셀의 x 위치입니다.
 
y:int — 픽셀의 y 위치입니다.

반환값
uint — RGB 픽셀 값을 나타내는 숫자입니다. (x, y) 좌표가 이미지의 경계를 벗어난 경우 0이 반환됩니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 빨강으로 채워진 BitmapData 객체를 만든 다음 getPixel() 메서드를 사용하여 왼쪽 위 픽셀의 색상 값을 결정합니다.
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

()메서드 
public function getPixel32(x:int, y:int):uint

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

알파 채널 데이터와 RGB 데이터를 포함하는 ARGB 색상 값을 반환합니다. 이 메서드는 알파 채널 데이터 없이 RGB 색상을 반환하는 getPixel() 메서드와 유사합니다.

BitmapData 객체에 포함된 모든 픽셀은 미리 곱해진 색상 값으로 저장됩니다. 미리 곱해진 이미지 픽셀은 알파 데이터가 이미 곱해진 RGB(빨강, 녹색, 파랑) 색상 채널 값을 갖습니다. 예를 들어 알파 값이 0인 경우 RGB 채널 값도 곱해지지 않은 값에 상관없이 0이 됩니다. 이와 같은 데이터 손실로 인해 작업을 수행할 때 몇 가지 문제가 발생할 수 있습니다. 모든 BitmapData 메서드는 곱하지 않은 값을 사용하고 반환합니다. 내부 픽셀 표현은 미리 곱한 값을 곱하지 않은 값으로 변환한 이후에 값으로 반환됩니다. 픽셀 값은 설정 작업에서 원시 이미지 픽셀을 설정하기 전에 미리 곱해집니다.

매개 변수

x:int — 픽셀의 x 위치입니다.
 
y:int — 픽셀의 y 위치입니다.

반환값
uint — ARGB 픽셀 값을 나타내는 숫자입니다. (x, y) 좌표가 이미지 경계를 벗어난 경우 0이 반환됩니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 색상으로 채워진 BitmapData 객체를 만든 다음 getPixel32() 메서드를 사용하여 왼쪽 위 픽셀의 색상 값을 결정하고 각 색상 구성 요소(알파, 빨강, 녹색 및 파랑)의 16진수 값을 결정합니다.
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

()메서드 
public function getPixels(rect:Rectangle):ByteArray

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

픽셀 데이터의 사각형 영역에서 바이트 배열을 생성합니다. 픽셀별로 부호 없는 정수(곱하지 않은 32비트 픽셀 값)를 바이트 배열에 씁니다.

매개 변수

rect:Rectangle — 현재 BitmapData 객체의 사각형 영역입니다.

반환값
ByteArray — 해당 Rectangle의 픽셀을 나타내는 ByteArray입니다.

오류
TypeError — rect가 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 임의 노이즈 픽셀로 채워진 BitmapData 객체를 만든 다음 getPixels() 메서드를 사용하여 ByteArray 객체를 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

()메서드 
public function getVector(rect:Rectangle):Vector.<uint>

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5, Flash Lite 4

픽셀 데이터의 사각형 영역에서 벡터 배열을 생성합니다. 지정된 사각형에 대한 부호 없는 정수(곱하지 않는 32비트 픽셀 값)의 Vector 객체를 반환합니다.

매개 변수

rect:Rectangle — 현재 BitmapData 객체의 사각형 영역입니다.

반환값
Vector.<uint> — 해당 Rectangle을 나타내는 Vector입니다.

오류
TypeError — rect가 null입니다.

histogram

()메서드 
public function histogram(hRect:Rectangle = null):Vector.<Vector.<Number>>

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5, Flash Lite 4

BitmapData 객체의 256 값 이진 숫자 막대 그래프를 계산합니다. 이 메서드는 네 개의 Vector.<Number> 인스턴스(Number 객체를 포함하는 네 개의 Vector 객체)를 포함하는 Vector 객체를 반환합니다. 네 개의 Vector 인스턴스는 순서대로 빨강, 녹색, 파랑 및 알파 구성 요소를 나타냅니다. 각 Vector 인스턴스에는 개별 구성 요소 값의 채우기 수를 나타내는 256개의 값(0에서 255까지)이 포함되어 있습니다.

매개 변수

hRect:Rectangle (default = null) — 사용할 BitmapData 객체의 영역입니다.

반환값
Vector.<Vector.<Number>>

hitTest

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

하나의 비트맵 이미지와 특정한 점, 사각형 또는 다른 비트맵 이미지 간의 픽셀 수준 히트 감지를 수행합니다. 히트는 점이나 사각형이 불투명 픽셀 위에 겹치거나 두 불투명 픽셀이 서로 겹치는 것으로 정의됩니다. 히트 테스트를 수행할 때 어느 한 객체의 확장이나 회전 또는 기타 변환은 고려하지 않습니다.

불투명 이미지의 경우 이 메서드에서는 완전 불투명 사각형으로 간주됩니다. 투명도를 고려하는 픽셀 수준의 히트 테스트를 수행하려면 두 개의 이미지 모두 투명 이미지라야 합니다. 두 개의 투명 이미지를 테스트할 때 알파 임계값 매개 변수는 0에서 255 사이 범위에서 어떤 알파 채널 값이 불투명으로 간주되는지 제어합니다.

매개 변수

firstPoint:Point — 임의의 좌표 영역에서 BitmapData 이미지의 왼쪽 위 모서리 위치입니다. 동일한 좌표 공간이 secondBitmapPoint 매개 변수를 정의하는 데 사용됩니다.
 
firstAlphaThreshold:uint — 이 히트 테스트에서 불투명으로 간주되는 최소 알파 채널 값입니다.
 
secondObject:Object — Rectangle, Point, Bitmap 또는 BitmapData 객체입니다.
 
secondBitmapDataPoint:Point (default = null) — 두 번째 BitmapData 객체에서 픽셀 위치를 정의하는 점입니다. secondObject 값이 BitmapData 객체일 때만 이 매개 변수를 사용합니다.
 
secondAlphaThreshold:uint (default = 1) — 두 번째 BitmapData 객체에서 불투명으로 간주되는 최소 알파 채널 값입니다. secondObject 값이 BitmapData 객체이고 두 BitmapData 객체가 모두 투명 객체일 때만 이 매개 변수를 사용합니다.

반환값
Boolean — 히트가 발생하면 값이 true이고, 그렇지 않으면 false입니다.

오류
ArgumentError secondObject 매개 변수가 Point, Rectangle, Bitmap 또는 BitmapData 객체가 아닙니다.
 
TypeError — firstPoint가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 사각형 영역(20, 20, 40, 40)에서만 불투명한 BitmapData 객체를 만들고, Point 객체를 secondObject로 삼아 hitTest() 메서드를 호출합니다. 첫 번째 호출에서 Point 객체는 BitmapData 객체의 왼쪽 위 모서리(투명)를 정의하고, 두 번째 호출에서 Point 객체는 BitmapData 객체의 가운데(불투명)를 정의합니다.
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

()메서드 
public function lock():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 어떤 객체(예: Bitmap 객체)도 업데이트되지 않도록 이미지를 잠급니다. 성능을 높이려면 setPixel() 또는 setPixel32() 메서드를 여러 차례 호출하기 전후에 이 메서드를 unlock() 메서드와 함께 사용합니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 Bitmap 객체 picturebitmapData 속성을 기반으로 BitmapData 객체를 만듭니다. 그리고 나서 lock() 메서드를 호출한 다음 BitmapData 객체를 수정하는 복잡한 사용자 정의 함수인 complexTransformation()을 호출합니다. picture 객체 및 complexTransformation() 함수는 이 예제에서 정의하지 않습니다. complexTransformation() 함수가 picture 객체의 bitmapData 속성을 업데이트하더라도 코드가 bitmapData 객체에서 unlock() 메서드를 호출하기 전까지는 변경 사항이 반영되지 않습니다.
import flash.display.BitmapData;

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

merge

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

소스 이미지에서 대상 이미지로 채널별 블렌드를 수행합니다. 각 채널과 픽셀에 대해 소스 및 대상 픽셀의 채널 값에 따라 새 값이 계산됩니다. 예를 들어 빨강 채널에서 다음과 같은 새 값이 계산됩니다. 여기서 redSrc는 소스 이미지의 픽셀에 대한 빨강 채널 값이고 redDest는 대상 이미지의 해당 픽셀에 대한 빨강 채널 값입니다.

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

redMultiplier, greenMultiplier, blueMultiplieralphaMultiplier 값은 각 색상 채널에 사용된 승수입니다. 0 ~ 0x100(256) 범위의 16진수 값을 사용하며 여기서 0은 대상의 전체 값이 결과에서 사용됨을 지정하고, 0x100은 소스의 전체 값이 사용됨을 지정하며, 사이의 숫자는 블렌드가 사용됨을 지정합니다(예: 50%의 경우 0x80).

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 다른 BitmapData 객체가 될 수도 있고 현재 BitmapData 객체를 참조할 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 소스 사각형의 왼쪽 위 모서리에 해당하는 대상 이미지(현재 BitmapData 인스턴스) 내부의 점입니다.
 
redMultiplier:uint — 빨강 채널 값을 곱하는 16진수 단위 값입니다.
 
greenMultiplier:uint — 녹색 채널 값을 곱하는 16진수 단위 값입니다.
 
blueMultiplier:uint — 파랑 채널 값을 곱하는 16진수 단위 값입니다.
 
alphaMultiplier:uint — 알파 투명도 값을 곱하는 16진수 단위 값입니다.


오류
TypeError — sourceBitmapData, sourceRect 또는 destPoint가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 두 개의 BitmapData 객체를 만듭니다. 두 객체 모두 크기가 100 x 80픽셀입니다. 첫 번째 객체는 녹색으로, 두 번째 객체는 빨간색으로 채워집니다. 이 코드는 merge() 메서드를 호출하여 지정된 사각형 영역에 한해 두 번째 BitmapData 픽셀을 첫 번째 BitmapData 객체에 병합합니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

임의의 노이즈를 나타내는 픽셀로 이미지를 채웁니다.

매개 변수

randomSeed:int — 사용할 난수 초기값입니다. 다른 매개 변수가 모두 동일할 경우 난수 초기값을 변경하면 다양한 의사 난수 결과를 얻을 수 있습니다. 노이즈 함수는 진정한 의미의 난수 생성 함수가 아니라 매핑 함수이기 때문에 같은 난수 초기값을 입력하면 매번 같은 결과가 나옵니다.
 
low:uint (default = 0) — 각 채널에 대해 생성할 최저 값입니다(0 ~ 255).
 
high:uint (default = 255) — 각 채널에 대해 생성할 최고 값입니다(0 ~ 255).
 
channelOptions:uint (default = 7) — 네 가지 색상 채널 값(BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREENBitmapDataChannel.ALPHA)을 임의로 결합한 숫자입니다. logical OR 연산자(|)를 사용하여 채널 값을 결합할 수 있습니다.
 
grayScale:Boolean (default = false) — 부울 값. 값이 true인 경우 모든 색상 채널 값을 동일하게 설정하여 회색 음영 이미지를 만듭니다. 이 매개 변수를 true로 설정해도 알파 채널 선택에는 영향을 미치지 않습니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 두 개의 BitmapData 객체를 만들고 양쪽 모두에서 noise() 메서드를 호출합니다. 그러나 첫 번째 객체의 noise() 메서드를 호출할 때는 grayscale 매개 변수를 false로 설정하고 두 번째 객체의 noise() 메서드를 호출할 때는 이 매개 변수를 true로 설정합니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

각 채널에 하나씩 최대 네 개까지의 색상 팔레트 데이터 배열이 있는 이미지에서 색상 채널 값을 다시 매핑합니다.

Flash 런타임에서는 다음 단계를 사용하여 결과 이미지를 생성합니다.

  1. 빨강, 녹색, 파랑 및 알파 값을 계산한 후, 표준 32비트 정수 계산법을 사용하여 그 값들을 모두 더합니다.
  2. 각 픽셀의 빨강, 녹색, 파랑 및 알파 채널 값을 각각 0에서 255 사이의 값으로 추출합니다. 이러한 값을 사용하여 새 색상 값을 redArray, greenArray, blueArray, alphaArray 등의 적절한 배열로 조회합니다. 이와 같은 네 개의 배열에는 각각 256 값이 포함되어야 합니다.
  3. 네 개의 새 채널 값이 모두 검색되면 채널 값을 결합하여 픽셀에 적용할 하나의 표준 ARGB 값으로 만듭니다.

이 메서드에서는 채널 간 효과를 지원할 수 있습니다. 각각의 입력 배열은 32비트 값을 포함할 수 있고 값을 서로 더할 때 이동은 없습니다. 이 루틴은 채널별 고정은 지원하지 않습니다.

채널에 대해 지정된 배열이 없으면 소스 이미지에서 대상 이미지로 색상 채널이 복사됩니다.

이 메서드는 일반 팔레트 매핑(채널 하나를 택해 이를 false 색상 이미지로 변환하는 방법) 등과 같은 다양한 효과에 활용할 수 있습니다. 감마, 커브, 레벨, 양자화와 같은 다양한 고급 색상 조작 알고리즘에도 이 메서드를 사용할 수 있습니다.

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 다른 BitmapData 객체일 수도 있고 현재 BitmapData 인스턴스를 참조할 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 소스 사각형의 왼쪽 위 모서리에 해당하는 대상 이미지(현재 BitmapData 객체) 내부의 점입니다.
 
redArray:Array (default = null)redArraynull이 아닌 경우 red = redArray[source red value] else red = source rect value입니다.
 
greenArray:Array (default = null)greenArraynull이 아닌 경우 green = greenArray[source green value] else green = source green value.입니다.
 
blueArray:Array (default = null)blueArraynull이 아닌 경우 blue = blueArray[source blue value] else blue = source blue value입니다.
 
alphaArray:Array (default = null)alphaArraynull이 아닌 경우 alpha = alphaArray[source alpha value] else alpha = source alpha value입니다.


오류
TypeError — sourceBitmapData, sourceRect 또는 destPoint가 null입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 빨간색 사각형이 가운데에 있는 녹색 BitmapData 객체를 만든 다음 paletteMap() 메서드를 사용하여 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

()메서드 
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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

Perlin 노이즈 이미지를 생성합니다.

Perlin 노이즈 생성 알고리즘은 옥타브라는 개별 임의의 노이즈 함수를 보다 자연스럽게 보이는 임의의 노이즈를 발생시키는 단일 함수에 삽입하고 결합합니다. 음악의 옥타브와 마찬가지로 각 옥타브 함수의 진동수는 선행 옥타브 함수의 두 배가 됩니다. Perlin 노이즈는 세부 정도가 서로 다른 다양한 노이즈 데이터 세트를 결합하기 때문에 "노이즈의 프랙탈 합"으로 설명되었습니다.

Perlin 노이즈 함수는 나뭇결, 구름, 산맥 등과 같은 자연 현상이나 풍경을 시뮬레이션하는 데 사용할 수 있습니다. 대부분의 경우 Perlin 노이즈 함수의 결과는 직접 표시되지는 않지만 다른 이미지를 개선하고 의사 난수 변형을 제공하는 데 사용됩니다.

단순한 디지털 노이즈 함수는 거칠고 대비가 심한 이미지를 생성합니다. 자연에서는 이와 같이 거친 대비를 좀처럼 찾아보기 어렵습니다. Perlin 노이즈 알고리즘은 서로 다른 세부 레벨에서 작동하는 여러 노이즈 함수를 혼합합니다. 이 알고리즘을 사용하면 인접한 픽셀 값 간의 차이가 작아집니다.

매개 변수

baseX:Numberx 방향에서 사용할 진동수입니다. 예를 들어 64 x 128 이미지에 맞는 크기의 노이즈를 생성하려면 baseX 값에 64를 전달해야 합니다.
 
baseY:Numbery 방향에서 사용할 진동수입니다. 예를 들어 64 x 128 이미지에 맞는 크기의 노이즈를 생성하려면 baseY 값에 128을 전달해야 합니다.
 
numOctaves:uint — 이 노이즈를 만들기 위해 결합할 옥타브, 즉 개별 노이즈 함수의 수입니다. 옥타브의 수가 많아질수록 보다 상세한 이미지가 만들어집니다. 또한 옥타브의 수가 많아질수록 처리 시간도 더 많이 소요됩니다.
 
randomSeed:int — 사용할 난수 초기값입니다. 다른 매개 변수가 모두 동일할 경우 난수 초기값을 변경하면 다양한 의사 난수 결과를 얻을 수 있습니다. Perlin 노이즈 함수는 진정한 의미의 난수 생성 함수가 아니라 매핑 함수이기 때문에 같은 난수 초기값을 입력하면 같은 결과가 생성됩니다.
 
stitch:Boolean — 부울 값. 값이 true이면 이 메서드는 비트맵 채우기 작업 시 매끄러운 경사면 질감을 만들어내기 위해 이미지의 가장자리를 부드럽게 다듬고자 시도합니다.
 
fractalNoise:Boolean — 부울 값. 값이 true이면 이 메서드는 프랙탈 노이즈를 생성하고, 그렇지 않으면 휘몰아치기를 생성합니다. 휘몰아치기가 포함된 이미지는 그래디언트에서 불연속 선이 드러나기 때문에 불꽃과 파도와 같은 날카로운 시각적 효과를 만드는 데 적합합니다.
 
channelOptions:uint (default = 7) — 네 가지 색상 채널 값(BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREENBitmapDataChannel.ALPHA)을 임의로 결합한 숫자입니다. logical OR 연산자(|)를 사용하여 채널 값을 결합할 수 있습니다.
 
grayScale:Boolean (default = false) — 부울 값. 값이 true이면 빨강, 녹색 및 파랑 색상 채널을 모두 같은 값으로 설정하여 회색 음영 이미지를 생성합니다. 이 값을 true로 설정해도 알파 채널 값에는 영향을 미치지 않습니다.
 
offsets:Array (default = null) — 각 옥타브의 xy 오프셋에 해당하는 점 배열입니다. 오프셋 값을 조작하면 perlinNoise 이미지 레이어를 부드럽게 스크롤할 수 있습니다. 오프셋 배열의 각 점은 특정 옥타브 노이즈 함수에 영향을 미칩니다.


예제  ( 예제 사용 방법 )

다음 예제에서는 perlinNoise() 메서드를 호출하여 빨강 및 파랑 수채화 효과를 생성하는 200 x 200픽셀의 BitmapData 객체를 만듭니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

소스 이미지에서 대상 이미지로, 혹은 같은 이미지를 사용하여 픽셀 디졸브(dissolve)를 수행합니다. Flash 런타임에서는 randomSeed 값을 사용하여 임의의 픽셀 디졸브를 생성합니다. 픽셀 디졸브가 완료될 때까지 해제를 지속하기 위해서는 함수의 반환 값을 다음 호출에서 전달해야 합니다.

소스 이미지가 대상 이미지와 일치하지 않는 경우, 모든 속성을 그대로 사용하여 소스에서 대상으로 픽셀이 복사됩니다. 이 과정에서 빈 이미지에서 가득찬 이미지로 디졸브가 가능합니다.

소스 이미지와 대상 이미지가 일치하는 경우에는 color 매개 변수 값으로 픽셀이 채워집니다. 이를 통해 가득찬 이미지를 디졸브해서 지울 수 있습니다. 이 경우 대상 point 매개 변수는 무시됩니다.

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 다른 BitmapData 객체일 수도 있고 현재 BitmapData 인스턴스를 참조할 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 소스 사각형의 왼쪽 위 모서리에 해당하는 대상 이미지(현재 BitmapData 인스턴스) 내부의 점입니다.
 
randomSeed:int (default = 0) — 픽셀 디졸브를 시작하는 데 사용할 난수 초기값입니다.
 
numPixels:int (default = 0) — 기본값은 소스 영역(폭 x 높이)의 1/30입니다.
 
fillColor:uint (default = 0) — 소스 값이 대상 값과 동일한 픽셀을 채우는 데 사용할 ARGB 색상 값입니다.

반환값
int — 후속 호출에 사용할 새 난수 초기값입니다.

오류
TypeError — sourceBitmapData, sourceRect 또는 destPoint가 null입니다.
 
TypeError — numPixels 값이 음수입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 pixelDissolve() 메서드를 통해 픽셀의 색상이 모두 변경될 때까지 한 번에 40픽셀씩 디졸브하여 회색 BitmapData 객체를 빨강 객체로 변환합니다.
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

()메서드 
public function scroll(x:int, y:int):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

이미지를 특정 픽셀 수(x, y)만큼 스크롤합니다. 스크롤 영역 밖의 가장자리 영역은 변하지 않습니다.

매개 변수

x:int — 가로 방향으로 스크롤할 크기입니다.
 
y:int — 세로 방향으로 스크롤할 크기입니다.


예제  ( 예제 사용 방법 )

다음 예제에서는 비트맵 데이터 객체를 오른쪽으로 40픽셀 스크롤한 결과를 보여 줍니다.
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

()메서드 
public function setPixel(x:int, y:int, color:uint):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

BitmapData 객체의 단일 픽셀을 설정합니다. 이 작업이 이루어지는 동안 이미지 픽셀의 현재 알파 채널 값은 그대로 보존됩니다. RGB color 매개 변수 값은 곱해지지 않은 색상 값으로 취급됩니다.

참고: setPixel() 또는 setPixel32() 메서드를 반복해서 사용할 때 성능을 향상시키려면 setPixel() 또는 setPixel32() 메서드를 호출하기 전에 lock() 메서드를 호출하고, 픽셀 변경을 모두 마치고 나면 unlock() 메서드를 호출합니다. 이 프로세스는 픽셀 변경을 모두 마치기 전까지 이 BitmapData 인스턴스를 참조하는 객체가 업데이트되지 않도록 합니다.

매개 변수

x:int — 값이 변경되는 픽셀의 x 위치입니다.
 
y:int — 값이 변경되는 픽셀의 y 위치입니다.
 
color:uint — 픽셀의 최종 RGB 색상입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 setPixel() 메서드를 사용하여 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

()메서드 
public function setPixel32(x:int, y:int, color:uint):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

BitmapData 객체의 단일 픽셀에 대한 색상 및 알파 투명도 값을 설정합니다. 이 메서드는 setPixel() 메서드와 유사하지만, setPixel32() 메서드의 경우 알파 채널 정보가 포함된 ARGB 색상 값을 사용한다는 점이 다릅니다.

BitmapData 객체에 포함된 모든 픽셀은 미리 곱해진 색상 값으로 저장됩니다. 미리 곱해진 이미지 픽셀은 알파 데이터가 이미 곱해진 RGB(빨강, 녹색, 파랑) 색상 채널 값을 갖습니다. 예를 들어 알파 값이 0인 경우 RGB 채널 값도 곱해지지 않은 값에 상관없이 0이 됩니다. 이와 같은 데이터 손실로 인해 작업을 수행할 때 몇 가지 문제가 발생할 수 있습니다. 모든 BitmapData 메서드는 곱하지 않은 값을 사용하고 반환합니다. 내부 픽셀 표현은 미리 곱한 값을 곱하지 않은 값으로 변환한 이후에 값으로 반환됩니다. 픽셀 값은 설정 작업에서 원시 이미지 픽셀을 설정하기 전에 미리 곱해집니다.

참고: setPixel() 또는 setPixel32() 메서드를 반복해서 사용할 때 성능을 향상시키려면 setPixel() 또는 setPixel32() 메서드를 호출하기 전에 lock() 메서드를 호출하고, 픽셀 변경을 모두 마치고 나면 unlock() 메서드를 호출합니다. 이 프로세스는 픽셀 변경을 모두 마치기 전까지 이 BitmapData 인스턴스를 참조하는 객체가 업데이트되지 않도록 합니다.

매개 변수

x:int — 값이 변경되는 픽셀의 x 위치입니다.
 
y:int — 값이 변경되는 픽셀의 y 위치입니다.
 
color:uint — 픽셀의 최종 ARGB 색상입니다. 비트맵이 투명이 아니고 불투명인 경우 이 색상 값의 알파 투명도 부분은 무시됩니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 setPixel32() 메서드를 사용하여 BitmapData 객체에 투명한(alpha == 0x60) 빨간색 선을 그립니다.
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

()메서드 
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0, Flash Lite 4

바이트 배열을 픽셀 데이터의 사각형 영역으로 변환합니다. 각 픽셀에 대해 ByteArray.readUnsignedInt() 메서드가 호출되며, 반환 값이 해당 픽셀에 쓰여집니다. 사각형 전체를 쓰기 전에 바이트 배열이 끝나면 함수가 반환됩니다. 바이트 배열의 데이터는 32비트 ARGB 픽셀 값이여야 합니다. 픽셀 읽기 전후에는 바이트 배열에서 어떤 검색도 수행되지 않습니다.

매개 변수

rect:Rectangle — BitmapData 객체의 사각형 영역을 지정합니다.
 
inputByteArray:ByteArray — 사각형 영역에서 사용할 곱하지 않은 32비트 픽셀 값으로 구성된 ByteArray 객체입니다.


오류
EOFError inputByteArray 객체에 rect 사각형 영역을 채울 데이터가 충분하지 않습니다. 메서드가 최대한 많은 픽셀을 채운 후 예외가 발생합니다.
 
TypeError — rect 또는 inputByteArray가 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 getPixels()setPixels() 메서드를 사용하여 한 BitmapData 객체에서 다른 객체로 픽셀을 복사합니다.
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

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5, Flash Lite 4

벡터를 픽셀 데이터의 사각형 영역으로 변환합니다. 각 픽셀마다 Vector 요소가 읽히고 BitmapData 픽셀로 작성됩니다. Vector에 포함된 데이터는 32비트 ARGB 픽셀 값이어야 합니다.

매개 변수

rect:Rectangle — BitmapData 객체의 사각형 영역을 지정합니다.
 
inputVector:Vector.<uint> — 사각형 영역에서 사용할 곱하지 않은 32비트 픽셀 값으로 구성된 Vector 객체입니다.


오류
RangeError — 벡터 배열이 모든 픽셀 데이터를 읽을 만큼 크지 않습니다.

threshold

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

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

이미지의 픽셀 값을 지정된 임계값 기준으로 테스트하고 그 테스트를 통과한 픽셀을 새 색상 값으로 설정합니다. threshold() 메서드를 사용하면 이미지에서 색상 범위를 분리 및 대체할 수 있고 이미지 픽셀에서 다른 논리 연산을 수행할 수 있습니다.

threshold() 메서드의 테스트 논리는 다음과 같습니다.

  1. ((pixelValue & mask) operation (threshold & mask))인 경우 픽셀을 color로 설정합니다.
  2. 그렇지 않고 copySource == true인 경우 픽셀을 sourceBitmap의 해당 픽셀 값으로 설정합니다.

operation 매개 변수는 임계값 테스트에 사용할 비교 연산자를 지정합니다. 예를 들어 "=="를 operation 매개 변수로 사용함으로써 이미지에서 특정 색상 값을 분리할 수 있습니다. 또는 {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}을 사용하여 소스 이미지 픽셀의 알파가 0x7F보다 작을 때 모든 대상 픽셀을 완전히 투명해지도록 설정할 수 있습니다. 이 기법을 사용하여 애니메이션 전환 효과 및 기타 효과를 생성할 수 있습니다.

매개 변수

sourceBitmapData:BitmapData — 사용할 입력 비트맵 이미지입니다. 소스 이미지는 현재의 BitmapData 인스턴스를 가리킬 수도 있고 혹은 다른 BitmapData 객체가 될 수도 있습니다.
 
sourceRect:Rectangle — 입력 이미지로 사용할 소스 이미지 영역을 정의하는 사각형입니다.
 
destPoint:Point — 소스 사각형의 왼쪽 위 모서리에 해당하는 대상 이미지(현재 BitmapData 인스턴스) 내부의 점입니다.
 
operation:String — 다음 비교 연산자 중 하나로, 문자열로 전달됩니다. "<", "<=", ">", ">=", "==", "!="
 
threshold:uint — 각 픽셀이 임계값을 충족하는지 아니면 초과하는지 확인하기 위해 각 픽셀을 테스트하는 값입니다.
 
color:uint (default = 0) — 임계값 테스트에 통과할 경우 픽셀에 설정할 색상 값입니다. 기본값은 0x00000000입니다.
 
mask:uint (default = 0xFFFFFFFF) — 색상 구성 요소를 분리하는 데 사용할 마스크입니다.
 
copySource:Boolean (default = false) — 값이 true이면 임계값 테스트에 통과하지 못할 경우 소스 이미지의 픽셀 값이 대상으로 복사됩니다. 값이 false이면 임계값 테스트를 통과하지 못할 경우 소스 이미지가 복사되지 않습니다.

반환값
uint — 변경된 픽셀 수입니다.

오류
TypeError — sourceBitmapData, sourceRect destPoint 또는 연산이 null입니다.
 
ArgumentError — 연산 문자열이 유효한 연산이 아닙니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 perlinNoise() 메서드를 사용하여 한 BitmapData 객체에 파란색과 빨간색 패턴을 추가합니다. 그런 다음 threshold() 메서드를 사용하여 이 픽셀을 첫 번째 BitmapData 객체에서 두 번째 객체로 복사하며, 빨간색 값이 0x80(50%)보다 큰 픽셀은 투명 빨간색(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

()메서드 
public function unlock(changeRect:Rectangle = null):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 9, AIR 1.0

이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 임의의 객체(예: Bitmap 객체)도 업데이트되도록 이미지 잠금을 해제합니다. 성능을 높이려면 setPixel() 또는 setPixel32() 메서드를 여러 차례 호출하기 전후에 이 메서드를 lock() 메서드와 함께 사용합니다.

매개 변수

changeRect:Rectangle (default = null) — 변경된 BitmapData 객체 영역입니다. 이 매개 변수의 값을 지정하지 않을 경우 BitmapData 객체의 전체 영역이 변경된 것으로 간주됩니다. 이 매개 변수에는 Flash Player 버전 9.0.115.0 이상이 필요합니다.

관련 API 요소


예제  ( 예제 사용 방법 )

다음 예제에서는 Bitmap 객체 picturebitmapData 속성을 기반으로 BitmapData 객체를 만듭니다. 그리고 나서 lock() 메서드를 호출한 다음 BitmapData 객체를 수정하는 복잡한 사용자 정의 함수인 complexTransformation()을 호출합니다. picture 객체 및 complexTransformation() 함수는 이 예제에서 정의하지 않습니다. complexTransformation() 함수가 picture 객체의 bitmapData 속성을 업데이트하더라도 코드가 bitmapData 객체에서 unlock() 메서드를 호출하기 전까지는 변경 사항이 반영되지 않습니다.
import flash.display.BitmapData;

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

다음 예제에서는 BitmapDataExample 클래스를 사용하여 Image.gif 이미지를 DisplayObject의 기본 위치(0, 0)에 로드합니다. 그런 다음 Image.gif의 복사본이 원본 오른쪽에 배치되는데, 이 복사본에서 threshold() 메서드를 사용한 텍스트를 통과하는 픽셀에는 새 색상이 적용됩니다. 이 작업은 다음 단계를 사용하여 수행됩니다.
  1. 이미지 파일의 이름과 위치를 나타내는 url 속성이 만들어집니다.
  2. 클래스 생성자가 Loader 객체를 만들고 이 객체는 completeHandler() 메서드에서 이미지 조작을 완료했을 때 전달되는 이벤트 리스너를 인스턴스화합니다.
  3. request URLRequest 객체가 표시 객체를 사용하여 이미지를 메모리에 로드하는 loader.load()에 전달됩니다.
  4. 이제 이미지가 표시 목록에 놓이고 화면의 x = 0, y = 0 좌표에 표시됩니다.
  5. completeHandler() 메서드는 다음 작업을 수행합니다.
    • 두 번째 Loader를 Bitmap 객체와 함께 만들며, 이 Bitmap 객체는 Loader 객체와 함께 초기화됩니다.
    • 두 번째 Bitmap 객체인 duplicate를 만든 뒤 duplicateImage() 메서드를 호출하여 원본 이미지의 복제본을 만듭니다.
    • BitmapData 객체를 만듭니다. 이 객체는 duplicate 객체의 BitmapData 객체에 할당됩니다.
    • 원본 이미지와 동일한 좌표, 폭, 높이로 초기화된 새 Rectangle 객체를 만듭니다.
    • 기본값이 x = 0, y = 0인 새 Point 객체를 만듭니다.
    • 다음과 같은 변수를 만듭니다.
      • operation - 임계값이 원래 값보다 크거나 같은 경우 새 색상을 적용합니다.
      • threshold - 각 픽셀의 비교 대상 값(이 예제에서는 알파가 0xCC인 밝은 회색)입니다.
      • color - 임계값 테스트를 통과한 픽셀이 설정되는 색상으로, 이 경우에는 단색 노랑입니다.
      • mask - 정반대 색상(투명 파랑)입니다.
      • copySource - false로 설정되어 임계값이 통과하지 못할 경우 픽셀 값이 복사되지 않음을 나타냅니다. 하지만 이미지는 복제되어 있고 임계값 테스트를 통과한 픽셀만 변경되기 때문에 이 값은 아무 의미가 없습니다.
    • 앞서 나온 변수를 사용하여 threshold() 메서드를 호출합니다. 최종 임계값 수식은 if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00입니다.

참고:

  • [로컬 재생 보안]을 [로컬 파일만 액세스]로 설정하여 SWF 파일을 컴파일해야 합니다.
  • 이 예제에서는 SWF 파일과 같은 디렉토리에 Image.gif 파일이 있어야 합니다.
  • 폭이 최대 80픽셀 정도인 이미지를 사용하는 것이 좋습니다.

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 ]영어로 표시되는 이유
ActionScript 3.0 참조 설명서의 내용이 영어로 나타납니다.

ActionScript 3.0 참조 설명서 중 일부는 전체 언어로 번역되지 않았습니다. 언어 요소가 번역되지 않은 경우 영어로 나타납니다. 예를 들어 ga.controls.HelpBox 클래스는 어떤 언어로도 번역되지 않았습니다. 그러므로 한국어 버전의 참조 설명서에서 ga.controls.HelpBox 클래스는 영어로 나타납니다.