'floodFill'에 해당되는 글 1건

  1. 2008.07.31 주변의 같은 색을 바꾸는 FloodFill
AS3.0 Cookbook/비트맵2008. 7. 31. 14:12

비트맵 데이터에서 픽셀단위 색을 바꾸는 것을 setPixel이라는 메서드를 통해 바꿀 수 있었다. 이제는 데이터에 한부분을 차지하는 영역에 관하여 색을 바꾸는 메서드로는 fillRect와 floodFill메서드를 사용하여 바꾼다.

fillRect는 좌표와 크기를 Rectangle클래스로 정의하고 바꾸고자 하는 색의 정보를 32비트의 색상값으로
설정한다.

floodFill은 바꾸고자하는 지점(좌표)색상와 주변의 같은 색을 새로운 컬러로 바꿀 수 있다. 이것은 마치 포토샵의 페인트 버켓처럼 색과 주변영역의 컬러를 새로운 색상으로 교체하는데 파라미터는 바꾸고자하는 좌표와 새로운 색상값을 선언하면 된다.





위에 무비는 랜덤하게 fillRect를 사용하여 200개의 랜덤한 위치와 랜덤한 색상을 설정하여 Bitmap에 붙인 후
마우스클릭이 발생하면 해당 위치의 BitmapData의 색상과 주변색을 floodFill을 통하여 바꾸었다.

화면에 랜덤한 박스조각들 만들기
for( var i:int = 0; i<200; i++ ){
    bitmap.fillRect( new Rectangle ( Math.random() * stage.stageWidth -25 ,
                         Math.random() * stage.stageHeight -25 ,  
                         50 , 50  ) ,
                         Math.random() * 0xFFFFFFFF
);
   }

클릭 시 다음과 같은 코드가 실행 된다.
bitmap.floodFill( mouseX , mouseY , 0xFFFF0000 );

이처럼 BitmapData의 영역을  fillRect와 floodFill를 통해 새로운 컬러로 바꿀 수 있다.

Posted by 버터백통