サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

BitmapData.drawWithQuality()メソッド

ID: FN1204007 Platform: All Version: CS6/ActionScript 3.0 Runtime: Flash Player 11.3/AIR 3.3

BitmapDataクラス
パッケージ flash.display
継承 BitmapData → Object
drawWithQuality()メソッド
実装 public function drawWithQuality(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false, quality:String = null):void
概要

参照するBitmapDataインスタンスに対して、引数に指定したDisplayObjectまたはBitmapDataインスタンスのイメージを描画する。

引数

source:IBitmapDrawable − 描画するイメージとなるDisplayObjectあるいはBitmapDataインスタンスなどIBitmapDrawableインターフェイスを実装するクラスのオブジェクト。

matrix:Matrix − 描画イメージを座標変換するMatrixオブジェクト。変換が不要なときはnull(デフォルト値)を渡す。

colorTransform:ColorTransform − 描画イメージのカラーを調整するColorTransformオブジェクト。調整が不要なときはnull(デフォルト値)を渡す。

blendMode:String − 描画するイメージに適用するブレンドモードを示す文字列。BlendModeクラスの定数で指定する[*1]。デフォルト値はnull(指定なし)。

clipRect:Rectangle − 描画するイメージの領域を指定するRectangleオブジェクト。デフォルト値はnullでクリッピングしない。

smoothing:Boolean − 第1引数のsourceにBitmapDataインスタンスを渡したとき、スムージングするかどうかを定めるブール(論理)値。trueを指定するとスムージングされ、イメージを回転したりサイズ変更しても滑らかになる。デフォルト値はfalseで、スムージングせず、描画負荷は軽くなる。

quality:StringStageQualityクラスの定数。デフォルト値はfalse

戻り値 なし。

説明
BitmapData.drawWithQuality()メソッドは、Flash Player 11.3から備わりました。

第1引数に渡したDisplayObjectあるいはBitmapDataインスタンスのイメージを、Flashランタイムのベクターレンダラーにより、メソッドが参照するBitmapDataインスタンスに描画します。第1引数のオブジェクトは、インターフェイスIBitmapDrawableでデータ型が定められます。

第2引数以降は、描画の仕方を決めるオプションです。第2引数は座標変換のMatrixオブジェクト、第3引数がカラー調整のColorTransformオブジェクト、第4引数でブレンドモードを選び、第5引数で描画する領域がRectangleオブジェクトで定められます。第1引数の描画もとオブジェクトがBitmapDataのときには、第6引数でスムージングするかどうかをブール(論理)値で指定できます。

第1から第6引数までの定め方とメソッドの処理結果は、BitmapData.draw()メソッドとまったく同じです。BitmapData.drawWithQuality()メソッドの違いは、第7引数が備わって、描画品質を選べるようになったことです[*2]。渡す値は、下表001のStageQualityクラスの定数です。Flash Player 11.3から、StageQuality.HIGH_16X16StageQuality.HIGH_16X16_LINEARStageQuality.HIGH_8X8およびStageQuality.HIGH_8X8_LINEARの4つの定数が加わりました。

表001■StageQualityクラスの定数
定数 品質 アンチエイリアス ビットマップのスムージング
BEST "best" 最高 4×4ピクセルグリッド つねにあり
HIGH "high" 高い 4×4ピクセルグリッド Bitmap.smoothingの設定
HIGH_16X16 "16x16" 最高 16×16ピクセルグリッド つねにあり
HIGH_16X16_LINEAR "16x16linear" 最高 16×16ピクセルグリッド
リニアsRGBスペース
つねにあり
HIGH_8X8 "8x8" 最高 8×8ピクセルグリッド つねにあり
HIGH_8X8_LINEAR "8x8linear" 最高 8×8ピクセルグリッド
リニアsRGBスペース
つねにあり
LOW "low" 低い なし なし
MEDIUM "medium" 中程度 2×2ピクセルグリッド Bitmap.smoothingの設定

[*1] 第4引数blendModeに指定するBlendModeクラスの定数は、[プロパティ]インスペクタのブレンドモードに対応させると、下表002のとおりです。他にもうひとつ、Shaderインスタンスでブレンドを設定する定数BlendMode.SHADERがあります。

表002■ブレンドモードとクラスの定数
ブレンドモード BlendModeクラスの定数
標準 NORMAL
レイヤー LAYER
比較(暗) DARKEN
乗算 MULTIPLY
比較(明) LIGHTEN
スクリーン SCREEN
オーバーレイ OVERLAY
ハードライト HARDLIGHT
加算 ADD
減算 SUBTRACT
差の絶対値 DIFFERENCE
反転 INVERT
アルファ ALPHA
消去 ERASE
表002挿入図

[*2] BitmapData.draw()メソッドを用いる場合には、Stage.qualityプロパティでステージのレンダリング品質を変えてからメソッドを呼出すことにより、描画の品質は変えられました(その後、Stage.qualityプロパティはもとの値に戻す)。たとえば、「手動によるビットマップキャッシュ」がこの手法を紹介しています。けれど、BitmapData.drawWithQuality()メソッドを使えば、この手間が要りません。

参考
[ActionScript 3.0 Reference for the Adobe Flash Platform] > [BitmapData]の「drawWithQuality() method」の項


作成者: 野中文雄
更新日: 2012年6月9日 Flash Player 11.3正式公開にともない、「参考」のリンクを正規ドキュメントに変更。
作成日: 2012年4月12日


Copyright © 2001-2012 Fumio Nonaka.  All rights reserved.