그림 외각선 따기...
ActionScript 3 2007. 6. 22. 17:20 |import com.minarto.color.GetRGB;
var bd:BitmapData = new BitmapData(mc1.width, mc1.height, false);
bd.draw(mc1);
bd.draw(mc1);
var new_bd:BitmapData = new BitmapData(mc1.width, mc1.height, false);
var dif:uint = 15;
for(var i:uint=0; i<mc1.height; i++)
{
for(var j:uint=0; j<mc1.width; j++)
{
var getRGB:GetRGB = new GetRGB(bd.getPixel(j, i));
var color_array:Array = [bd.getPixel(j - 1, i - 1), bd.getPixel(j, i - 1), bd.getPixel(j + 1, i - 1), bd.getPixel(j - 1, i), bd.getPixel(j + 1, i), bd.getPixel(j - 1, i + 1), bd.getPixel(j, i + 1), bd.getPixel(j + 1, i + 1)];
for(var k:uint=0; k<8; k++)
{
var ngetRGB:GetRGB = new GetRGB(color_array[k]);
if(Math.abs(ngetRGB.r - getRGB.r) > parseInt(dif + "0000", 16) || Math.abs(ngetRGB.g - getRGB.g) > parseInt(dif + "00", 16) || Math.abs(ngetRGB.b - getRGB.b) > parseInt(dif + "", 16))
{
new_bd.setPixel(j, i, 0);
}
else
{
new_bd.setPixel(j, i, 0x00FFFFFF);
}
}
}
}
for(var i:uint=0; i<mc1.height; i++)
{
for(var j:uint=0; j<mc1.width; j++)
{
var getRGB:GetRGB = new GetRGB(bd.getPixel(j, i));
var color_array:Array = [bd.getPixel(j - 1, i - 1), bd.getPixel(j, i - 1), bd.getPixel(j + 1, i - 1), bd.getPixel(j - 1, i), bd.getPixel(j + 1, i), bd.getPixel(j - 1, i + 1), bd.getPixel(j, i + 1), bd.getPixel(j + 1, i + 1)];
for(var k:uint=0; k<8; k++)
{
var ngetRGB:GetRGB = new GetRGB(color_array[k]);
if(Math.abs(ngetRGB.r - getRGB.r) > parseInt(dif + "0000", 16) || Math.abs(ngetRGB.g - getRGB.g) > parseInt(dif + "00", 16) || Math.abs(ngetRGB.b - getRGB.b) > parseInt(dif + "", 16))
{
new_bd.setPixel(j, i, 0);
}
else
{
new_bd.setPixel(j, i, 0x00FFFFFF);
}
}
}
}
var bm:Bitmap = new Bitmap(new_bd);
addChild(bm);
addChild(bm);
bm.x = mc1.width;
재미있는 Bitmap 놀이~
'ActionScript 3' 카테고리의 다른 글
Load 한 swf 파일의 속성 읽기 (0) | 2007.06.25 |
---|---|
Loader class 사용시 주의할 것... (0) | 2007.06.25 |
Bitmap 공부... (0) | 2007.06.22 |
as3 관련 문서 몇가지 (0) | 2007.06.20 |
InteractiveObject 가 겹칠 시의 버튼 비활성화에 대한 해결책 (2) | 2007.06.19 |