Bitmap 클래스 및 BitmapData 클래스

Flash Player 9 이상, Adobe AIR 1.0 이상

Bitmap 클래스는 비트맵 이미지 작업에 사용되는 ActionScript 3.0의 기본 클래스로, 화면에 비트맵 이미지를 표시하는 데 사용됩니다. BitmapData 클래스는 비트맵의 원시 이미지 데이터에 액세스하여 이를 조작하는 데 사용됩니다.

Bitmap 클래스의 이해

DisplayObject 클래스의 하위 클래스인 Bitmap 클래스는 비트맵 이미지를 표시하는 데 사용되는 ActionScript 3.0의 기본 클래스입니다. 이러한 이미지는 flash.display.Loader 클래스를 통해 로드되었거나 Bitmap() 생성자를 사용하여 동적으로 생성되었을 수 있습니다. 외부 소스에서 이미지를 로드할 경우 Bitmap 객체는 GIF, JPEG 또는 PNG 형식의 이미지만 사용할 수 있습니다. 인스턴스화된 Bitmap 인스턴스는 스테이지로 렌더링해야 할 BitmapData 객체의 래퍼로 간주할 수 있습니다. Bitmap 인스턴스는 표시 객체이므로 표시 객체의 모든 특징 및 기능을 Bitmap 인스턴스 조작에도 사용할 수 있습니다. 표시 객체 작업에 대한 자세한 내용은 디스플레이 프로그래밍 을 참조하십시오.

픽셀에 물리기 및 픽셀 다듬기

모든 표시 객체에 공통적으로 사용할 수 있는 기능 이외에도 Bitmap 클래스는 비트맵 이미지에만 사용할 수 있는 추가 기능을 제공합니다.

Bitmap 클래스의 pixelSnapping 속성은 Bitmap 객체를 가장 가까운 픽셀에 물릴지 여부를 결정합니다. 이 속성은 또한 PixelSnapping 클래스에 정의된 세 가지 상수( ALWAYS , AUTO , NEVER )를 사용합니다.

픽셀 물리기 기능을 적용하는 구문은 다음과 같습니다.

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

비트맵 이미지의 배율을 조절하면 이미지가 흐려지거나 왜곡되는 경우가 많습니다. 이러한 왜곡 현상을 줄이기 위해 BitmapData 클래스의 smoothing 속성이 사용됩니다. 이 부울 속성이 true 로 설정된 경우, 이미지 배율을 조절할 때 이미지의 픽셀이 앤티앨리어싱 처리되어 다듬어집니다. 그러면 이미지의 모양이 더 뚜렷하고 자연스러워집니다.

BitmapData 클래스의 이해

flash.display 패키지에 포함된 BitmapData 클래스는 로드되었거나 동적으로 생성된 비트맵 이미지에 포함된 픽셀의 사진 같은 스냅샷에 비유할 수 있습니다. 이 스냅샷은 객체 내 픽셀 데이터 배열로 표현됩니다. BitmapData 클래스에는 픽셀 데이터를 만들고 조작하는 데 유용한 일련의 내장 메서드도 포함되어 있습니다.

BitmapData 객체를 인스턴스화하려면 다음 코드를 사용하십시오.

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

width height 매개 변수는 비트맵 크기를 지정합니다. AIR 3 및 Flash Player 11부터는 BitmapData 객체의 크기 제한이 없어졌습니다. 비트맵의 최대 크기는 운영 체제에 따라 다릅니다.

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픽셀입니다.

transparent 매개 변수는 비트맵 데이터에 알파 채널이 포함되어 있는지( true ) 또는 포함되어 있지 않은지( false ) 여부를 지정합니다. fillColor 매개 변수는 32비트 색상 값으로 배경색은 물론 투명도 값( true 로 설정된 경우)을 지정합니다. 다음 예제에서는 투명도 50%의 주황색 배경을 가진 BitmapData 객체를 만듭니다.

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

새로 만든 BitmapData 객체를 화면에 렌더링하려면 해당 객체를 Bitmap 인스턴스에 할당하거나 그 안에 래핑하십시오. 이를 위해 BitmapData 객체를 Bitmap 객체 생성자의 매개 변수로 전달하거나 기존 Bitmap 인스턴스의 bitmapData 속성에 할당할 수 있습니다. 또한, Bitmap 인스턴스를 포함할 표시 객체 컨테이너의 addChild() 또는 addChildAt() 메서드를 호출하여 표시 목록에 Bitmap 인스턴스를 추가해야 합니다. 표시 목록을 사용한 작업에 대한 자세한 내용은 표시 목록에 표시 객체 추가 를 참조하십시오.

다음 예제에서는 빨간색으로 칠한 BitmapData 객체를 만든 후 해당 객체를 Bitmap 인스턴스에 표시합니다.

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);