forked from: flash on 2011-6-4
forked from 文字のエッジ検出 (diff: 2)
いつものように日本語テスト
ActionScript3 source code
/**
* Copyright tsu_droid ( http://wonderfl.net/user/tsu_droid )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/qvlv
*/
// forked from bach's flash on 2011-6-4
package {
import flash.filters.ColorMatrixFilter;
import flash.text.AntiAliasType;
import flash.filters.ConvolutionFilter;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.text.TextFieldType;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.display.Bitmap;
import flash.geom.Matrix;
import flash.display.BitmapData;
import flash.text.TextField;
import flash.events.Event;
import flash.display.Sprite;
public class Main extends Sprite {
public function Main():void {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
//元となるテキスト
var textFormat:TextFormat = new TextFormat();
textFormat.size = 150;
textFormat.color = 0x88aaff;
var textField:TextField = new TextField();
textField.defaultTextFormat = textFormat;
textField.autoSize = TextFieldAutoSize.LEFT;
textField.antiAliasType = AntiAliasType.NORMAL;
textField.text = "@水無月";
addChild(textField);
//キャンバスの生成
var canvas:BitmapData = new BitmapData(textField.width, textField.height);
canvas.draw(textField);
var rectAngle:Rectangle = new Rectangle(0, 0, canvas.width, canvas.height);
var point:Point = new Point(0, 0);
//グレースケール
var grayScaleMatrix:Array = [
1/3, 1/3, 1/3, 0, 0,
1/3, 1/3, 1/3, 0, 0,
1/3, 1/3, 1/3, 0, 0,
0, 0, 0, 255, 0
];
var grayScaleFilter:ColorMatrixFilter = new ColorMatrixFilter(grayScaleMatrix);
canvas.applyFilter(canvas, rectAngle, point, grayScaleFilter);
//2値化
canvas.threshold(canvas, rectAngle, point, "<", 0x00ffffff, 0xff000000, 255, false);
//エッジ検出
var laplacianMatrix:Array = [
-1, -1, -1,
-1, +8, -1,
-1, -1, -1
];
var laplacianFilter:ConvolutionFilter = new ConvolutionFilter(3, 3, laplacianMatrix);
canvas.applyFilter(canvas, rectAngle, point, laplacianFilter);
//ネガポジ反転
-1, 0, 0, 0, 255,
0, -1, 0, 0, 255,
0, 0, -1, 0, 255,
0, 0, 0, 255, 0
//キャンバスを表示
var bitmap:Bitmap = new Bitmap(canvas);
bitmap.y = stage.stageHeight / 2;
addChild(bitmap);
}
}
}
