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 |