色変換

(サンプル一覧を表示する)

FlashDevelop を使って、色変換の処理を入れてみました。

クリックするたびに赤色が強調されていきます。
白い部分は、元々赤の成分が最大値 (255) なので、影響を受けないようです。
黒っぽい部分が、色変換の影響を受けていることがわかります。
Flash の実行画面
色変換

Flashプレーヤーが入っていないか、JavaScriptが無効になっているようです。

Get Adobe Flash player

色変換
枠の中を何度かクリックしてみてください。

ソースコード

package 
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.ColorTransform;
	
	/**
	 * 色変換のサンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{
		/**
		 * 埋め込み画像
		 */
		[Embed(source='../image/test001.png')]
		private var image1:Class;
		
		/**
		 * 色変換対象の画像
		 */
		private var bitmap:Bitmap;
		
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化イベント
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			bitmap = Bitmap(new image1);
			RegisterBitmap(bitmap, 10, 10, 2.0);
			stage.addEventListener(MouseEvent.CLICK, onClick);
		}
			
		/**
		 * ステージにビットマップを登録して表示する
		 * @param	bitmap	表示するビットマップ
		 * @param	x		X 座標
		 * @param	y		Y 座標
		 * @param	scale	拡大率
		 */
		private function RegisterBitmap(bitmap:Bitmap, x:int, y:int, scale:Number):void
		{
			bitmap.smoothing = true;
			bitmap.cacheAsBitmap = true;
			bitmap.x = x;
			bitmap.y = y;
			bitmap.scaleX = scale;
			bitmap.scaleY = scale;
			addChild(bitmap);
		}
		
		/**
		 * クリックイベントハンドラ
		 * @param	event
		 */
		private function onClick(event:MouseEvent):void
		{
			var redMultiplier:Number = 1.0;
			var greenMultiplier:Number = 1.0;
			var blueMultiplier:Number = 1.0;
			var alphaMultiplier:Number = 1.0;
			var redOffset:Number = bitmap.transform.colorTransform.redOffset + 25;
			var greenOffset:Number = 0;
			var blueOffset:Number = 0;
			var alphaOffset:Number = 0;
			
			var colorTransform:ColorTransform;
			colorTransform =new ColorTransform(redMultiplier,
											   greenMultiplier,
											   blueMultiplier,
											   alphaMultiplier,
											   redOffset,
											   greenOffset,
											   blueOffset,
											   alphaOffset);
			bitmap.transform.colorTransform = colorTransform;
		}
		
	}
	
}		

参照

外部リンク