AS3.0 Cookbook/비트맵2008. 7. 31. 12:32

BitmapData에는 붙투명 이미지인 24비트의 getPixel()과 setPixel(), 알파채널이 포함된 32비트의 투명데이터를 설정하는  getPixel32() , setPixel32()를 제공한다. 이는 데이터 안에 한픽셀에 해당하는 값을 읽거나 설정하기 위해 사용된다.

* setPixel32 / setPixel
데어터의 해당 좌표에 한 점의 색을 설정할 수 있다. setPixel는 24비트로 불투명 컬러를 지원하고 setPixel32 는 32비트로 불투명 - 반투명 - 투명의 컬러를 지원한다.



위 무비의 경우는 가로 세로100픽셀의 비트맵 데이터를 만들고 가로세로 랜덤하게 불투명 0xFFFF0000 인 빨간점을 찍고 투명 데이터인 0x00000000인 투명점을 랜덤하게 찍었다.
bitmapData.setPixel32( Math.round(Math.random()*100 ) ,
                                 Math.round(Math.random()*100 ) ,
                                 0xFFFF0000 );
bitmapData.setPixel32( Math.round(Math.random()*100 ) ,
                                 Math.round(Math.random()*100 ) ,
                                  0x00000000 );

결과는 보이는 것과 같이 빨간점과 배경의 색(초록)을 보여주는 투명점이 setPixel32에 의해서 설정되었다.

* getPixel32 / getPixel
비트맵 데어터의 해당하는 한 좌표에 있는 픽셀값을 getPixel는 24비트로 getPixel32는 32비트로 읽어온다.


위의 무비는 마우스의 위치에 해당하는 픽셀정보를 getPixel을 통하여 얻어 16진수로 변환하여 텍스트필드에 보여주고 그 값을 작은 미리보기 비트맵의 데이터로 이용하여 보이게 하였다.
var colorVal:Number = _bitmap.getPixel( mouseX ,mouseY );  
_prevData.fillRect( new Rectangle(0,0,10,10) , colorVal );
_txt.text = "#" + colorVal.toString(16).toUpperCase();



Posted by 정윤수 버터백통

댓글을 달아 주세요

  1. 전 이런쪽으로는 완전 취약해서..;;

    2008.07.31 14:09 신고 [ ADDR : EDIT/ DEL : REPLY ]