package { import flash.display.Bitmap; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; [SWF(width="1000", height="1000", frameRate="24", backgroundColor="#FFFFFF")] public class bitmapDataHandle extends Sprite { private var container:Sprite; private var bitmap:Bitmap; private var loader:Loader; public function bitmapDataHandle() { loader = new Loader(); loader.load(new URLRequest("cat.jpg")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); } private function loadHandler(e:Event):void { loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadHandler); bitmap = loader.content as Bitmap; loader.unload(); container = new Sprite(); container.addChild(bitmap); container.addEventListener(MouseEvent.CLICK, clickHandler); addChild(container); } private function clickHandler(e:MouseEvent):void { var pixelValue:uint = bitmap.bitmapData.getPixel(mouseX,mouseY); trace("x : "+mouseX+" y: "+mouseY); trace("선택한 곳의 색상값 : "+pixelValue.toString(16)); } } }
까페에 질문글이 올라와서 급조한 테스트..
bitmapData에는 pixel을 이용해서 여러가지 작업을 할수 있다. 그중에 getPixel은 선택한 곳의 해당 픽셀값을 가져온다.
getPixels | () | 메서드 |
public function getPixels(rect:Rectangle):ByteArray
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
픽셀 데이터의 사각형 영역에서 바이트 배열을 생성합니다. 픽셀별로 부호 없는 정수(곱하지 않은 32비트 픽셀 값)를 바이트 배열에 씁니다.
매개 변수
rect:Rectangle — 현재 BitmapData 객체의 사각형 영역입니다. |
ByteArray — 해당 Rectangle의 픽셀을 나타내는 ByteArray입니다. |
오류
TypeError — rect가 null입니다. |
getPixels | () | 메서드 |
public function getPixels(rect:Rectangle):ByteArray
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
픽셀 데이터의 사각형 영역에서 바이트 배열을 생성합니다. 픽셀별로 부호 없는 정수(곱하지 않은 32비트 픽셀 값)를 바이트 배열에 씁니다.
매개 변수
rect:Rectangle — 현재 BitmapData 객체의 사각형 영역입니다. |
ByteArray — 해당 Rectangle의 픽셀을 나타내는 ByteArray입니다. |
오류
TypeError — rect가 null입니다. |
테스트 함수 만들고 포토샵에서 나오는 컬러 코드와 비교 해봤을때.
x : 530 y: 376
선택한 곳의 색상값 : 584b42
이렇게 출력된 좌표의 색상값을 포토샵에서 찍어보면 594b42 로 나온다.
몇군데 좌표를 테스트 해봤지만 포토샵과 똑같이 나오지는 않는것 같다.
하지만 사람눈으로 구별할수 있을만큼의 차이는 나지 않는다.
'Flex' 카테고리의 다른 글
List 상하로 변경하기 2 - 스크롤포지션 세팅 (0) | 2009.07.30 |
---|---|
List 상하로 위치 변경하기 1 - 이벤트의 처리 (3) | 2009.07.30 |
플레시에서 개행문자의 처리 (0) | 2009.07.02 |
MovieClip을 Bitmap 데이터로 저장하기 (2) | 2009.07.02 |
폰트 임베드시에 Unicode Range 설정하기 (0) | 2009.07.02 |