home > Smoothing

Smoothing

April 03, 2007

ビットマップフォントなど、ドットで構成される文字を拡大したときに見える輪郭のギザギザ(シャギー、エイリアシング)を滑らかに補正する機能のこと。ライブラリーからビットマッププロパティを開いて、スムージングにチェックをすればOK。また、ASでもできるのでそれについてメモしておきます。

import flash.display.BitmapData;
var imgLoader:MovieClipLoader = new MovieClipLoader();
var imgListener:Object = new Object();
imgListener.onLoadInit = function(target_mc:MovieClip):Void {
var _mc:MovieClip = target_mc._parent;
bitmapSmoothing(target_mc, _mc.photo);
_mc.onRelease = function():Void {
(中略)
};
};
imgLoader.addListener(imgListener);
base_mc.createEmptyMovieClip("loader", 1);
base_mc.loader._x = -120;
base_mc.loader._y = -90;
imgLoader.loadClip("cat.jpg", base_mc.loader);

function bitmapSmoothing(loader, holder):Void {

var _bd:BitmapData = new BitmapData

(loader._width, loader._height, true);

_bd.draw(loader);

holder.attachBitmap(_bd, 0, "auto", true);

loader.removeMovieClip();

}

外部からロードしたJPEGに、ビットマップスムージングをかけるには、ロードした画像をonInitのタイミングでBitmapDataにコピーし、コピーのほうをスムージングtrueでアタッチしてオリジナル画像を消去する。

imgLoader.loadClip("frog.png", base_mc.loader);
function bitmapSmoothing(loader, holder):Void {
var _bd:BitmapData = new BitmapData
(loader._width, loader._height, true, 0x00000000);
_bd.draw(loader);
holder.attachBitmap(_bd, 0, "auto", true);
loader.removeMovieClip();
}

Permalink | Comments (0)