[AS3]我的第一个Flash CS3组件—ImageEffect组件
原文地址:
http://www.klstudio.com/post/127.html
【功能简述】:ImageEffect组件是用来对Bitmap图片对象进行“马赛克,模糊,锐化,浮雕”等特效处理的纯代码组件。
【运行平台】:Flash CS3,ActionScript3,Flash Player 9 +
【功能演示】:
http://www.klstudio.com/demo/effect/test3.swf
【调用接口】:类路径为com.klstudio.images.ImageEffect。
1、public static function mosaic(image:Bitmap,distance:uint=5):void
功能:马赛克处理;
参数:image为需要处理图片对象;
distance为马赛克强度(取值>= 2)。
2、public static function blur(image:Bitmap,blurX:uint=4,blurY:uint=4):void
功能:模糊处理;
参数:image为需要处理图片对象;
blurX为水平模糊量;
blurY为垂直模糊量;
3、public static function emboss(image:Bitmap,direction:String = null):void
功能:浮雕处理;
参数:image为需要处理图片对象;
direction为浮雕方位。
取值列表:
ImageEffect.DIRECTION_BOTTOM 表示正下方;
ImageEffect.DIRECTION_BOTTOM_LEFT 表示左下方;
ImageEffect.DIRECTION_BOTTOM_RIGHT 表示右下方;
ImageEffect.DIRECTION_LEFT 表示正左方;
ImageEffect.DIRECTION_RIGHT 表示正右方;
ImageEffect.DIRECTION_TOP 表示正上方;
ImageEffect.DIRECTION_TOP_LEFT 表示左上方(这个是默认值);
ImageEffect.DIRECTION_TOP_RIGHT 表示右上方;
4、public static function sharpen(image:Bitmap,quality:uint=3):void
功能:锐化处理;
参数:image为需要处理图片对象;
quality为锐化品质。
取值列表:
ImageEffect.QUALITY_HIGH 表示高品质(这个是默认值);
ImageEffect.QUALITY_MEDIUM 表示中品质;
ImageEffect.QUALITY_LOW 表示低品质;
【使用说明】:
1、使用前提条件:
安装了Flash CS3软件;
安装了 Adobe Extension Manager 1.8扩展管理器,如果没有请先到这里下载:
http://www.adobe.com/cn/exchange/em_download/;
下载了ImageEffect组件安装包文件:
ImageEffect.mxp
2、打开ImageEffect组件安装包,将ImageEffect组件安装到Flash CS3里;
3、将ImageEffect组件拖到正在打开的fla文件的场景或库里,然后在调用代码(或类)的上面加上“import com.klstudio.images.ImageEffect;”一行代码就可以了,接下来就按照上面的接口来调用相应的功能了。
【调用实例】:
复制内容到剪贴板
代码:
/**
* ...
* @author Kinglong
* @version 0.1
*/
package project.test {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.text.*;
import flash.net.URLRequest;
//导入系统组件;
import fl.controls.ComboBox;
//导入图片特效处理类ImageEffect;
import com.klstudio.images.ImageEffect;
public class Test3 extends Sprite{
//源图片对象;
private var src_bmp:Bitmap;
//处理后图片对象;
private var new_bmp:Bitmap;
private var effect_cb:ComboBox;
public function Test3(){
stage.scaleMode = StageScaleMode.NO_SCALE;
//特效类型选择框;
effect_cb = new ComboBox();
effect_cb.move(5,5);
effect_cb.addItem({label:"马赛克",data:"mosaic"});
effect_cb.addItem({label:"浮雕",data:"emboss"});
effect_cb.addItem({label:"高斯模糊",data:"blur"});
effect_cb.addItem({label:"锐化",data:"sharpen"});
effect_cb.addEventListener(Event.CHANGE,changeEffectHandler);
addChild(effect_cb);
//加载图片;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.load(new URLRequest("/demo/effect/Image.jpg"));
}
//图片加载完成事件;
private function completeHandler(event:Event):void{
//获得图片对象src_bmp,设置并显示它;
src_bmp = event.target.content as Bitmap;
src_bmp.x = 0;
src_bmp.y = 30;
addChild(src_bmp);
//复制一个新图片对象new_bmp;
new_bmp = copyImage(src_bmp);
new_bmp.x = 300;
new_bmp.y = 30;
addChild(new_bmp);
//对图片对象进行马赛克特效处理;
ImageEffect.mosaic(new_bmp);
}
private function changeEffectHandler(event:Event):void{
var tmp_bmp:Bitmap = copyImage(src_bmp);
switch(event.target.value){
case "mosaic":
ImageEffect.mosaic(tmp_bmp);
new_bmp.bitmapData = tmp_bmp.bitmapData;
break;
case "emboss":
ImageEffect.emboss(tmp_bmp);
new_bmp.bitmapData = tmp_bmp.bitmapData;
break;
case "blur":
ImageEffect.blur(tmp_bmp);
new_bmp.bitmapData = tmp_bmp.bitmapData;
break;
case "sharpen":
ImageEffect.sharpen(tmp_bmp);
new_bmp.bitmapData = tmp_bmp.bitmapData;
break;
}
}
//复制图片对象;
public function copyImage(image:Bitmap):Bitmap{
return new Bitmap(image.bitmapData.clone());
}
}
}[
本帖最后由 kinglong 于 2007-6-16 01:13 编辑 ]