文字列のビットマップを取得する

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

FlashDevelop を使って、文字列のビットマップを取得するテストをしてみました。

標準のデバイスフォント (何もフォントを指定しなかった時に表示されるフォント) は
OS によって見た目が違うので注意してください。
ビットマップの内容も OS によって違います。

全く同じ内容のビットマップを出力したい時は、埋め込みフォントを使ってください。
Flash の実行画面
文字列のビットマップを取得する

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

Get Adobe Flash player

文字列のビットマップを取得する

ソースコード

package 
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	
	/**
	 * 文字列のビットマップを取得するサンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{		
		/**
		 * コンストラクタ
		 */
		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
			
			// テキストフィールドの初期化
			var textField:TextField;
			textField = new TextField();
			textField.autoSize = TextFieldAutoSize.LEFT;
			textField.text = "[文字列のビットマップを取得するサンプル]\n" +
							 "  縦幅だけを 2 倍にして表示しています。\n" +
							 "  電光掲示板みたいな表示に使えるかも。";
			
			// テキストフィールドをスプライトオブジェクトに入れる
			var sprite:Sprite = new Sprite();
			sprite.addChild(textField);
			
			// テキストフィールドが入ったスプライトオブジェクトの
			// ビットマップデータを取得する
			var bitmapData:BitmapData = new BitmapData(320, 120);
			bitmapData.draw(sprite);
			
			// 出力用の画像を作成する
			var output:BitmapData = new BitmapData(320, 240);
			
			for (var y:int = 0; y < 120; y++)
			{
				for (var x:int = 0; x < 320; x++)
				{
					var color:uint;
					color = bitmapData.getPixel(x, y);
					output.setPixel(x, y * 2, color);
				}
			}
			
			// 出力用のビットマップをステージに追加
			addChild(new Bitmap(output));
		}
		
	}
	
}
		

参照

外部リンク