• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
FLASH
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
FLASH AS实现马赛克效果
软件发布 FLASH AS实现马赛克效果
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 网站架设 | Flash | FLASH AS实现马赛克效果

FLASH AS实现马赛克效果

 

添加时间: 2006-9-18 5:41:57  作者: mirycat  阅读次数:118   来源: 蓝色理想

 

 

       

   

      一般实现马赛克有 2 种办法, 采用的都是遍历图像上的像素, 对相隔一定范围内的像素填充同一颜色, 只不过采样的颜色位置不同, 有选中心点的, 也有选范围内全部像素平均值的, 考虑到 flash 的效率问题, 这个是选择中心点的, 可以省掉大量循环

      同时注意 stride 要 4 的倍数, 不然的话.. 自己看吧. 哈哈(月光注:其实用2的倍数也就可以了)

import flash.display.BitmapData;
// 场景中摆个叫 img 的 mc 就 ok
var oldBmp:BitmapData = new BitmapData(img._width, img._height);
oldBmp.draw(img);
var newBmp:BitmapData = mosaic(oldBmp, 12);
var mc = createEmptyMovieClip("mc", 1);
mc.attachBitmap(newBmp, getNextHightestDepth());
mc._x = img._width;
function mosaic(bmp:BitmapData, stride:Number):BitmapData {
 var startTime = getTimer();
 
 var newBmp:BitmapData = new BitmapData(bmp.width, bmp.height);
 var w = bmp.width / stride + 1;
 var h = bmp.height / stride + 1;
 var edgeW = bmp.width % stride; // 边缘不足 stride 的部分
 var edgeH = bmp.height % stride;
 var centerW = (stride-1)/2; // 第一格的中心点
 var centerH = centerY; // 第一格永远是方的
 var tmpX, tmpY; // 循环中的真实像素位置, 前面 w, h 被除过了..
 var blockW, blockH; // 马赛克的格子
 
 var i = -1;
 while (++i < w) {
  tmpX = i * stride;
  if (i == w - 1){
   blockW = edgeW;
  } else {
   blockW = stride;
  }
  centerW = (blockW - 1) / 2;
  var j = -1;
  while (++j < h) {
   tmpY = j * stride;
   if (i == h - 1){
    blockH = edgeH;
   } else {
    blockH = stride;
   }
   centerH = (blockH - 1) / 2;
   var color = bmp.getPixel(tmpX + centerW, tmpY + centerH);
   var m = -1;
   while (++m < blockW) {
    var n = -1
    while (++n < blockH) {
     newBmp.setPixel(tmpX + m, tmpY + n,color);
    }
   }
  }
  
 }
 trace("Cost : "+(getTimer()-startTime));
 return newBmp;
}

以上代码请用FLASH8编译执行.

下载FLA文件
下载SWF文件

 

 

 

上下文章:

 

上一篇文章: 浅释ActionScript的代码优化 下一篇文章: 新鲜玩法 Flash动画也可用电视观看

相关文章:

  • 模仿景深效果 用PS扫除杂乱背景
  • Photoshop简单的艺术化效果
  • 用Photoshop美发:焗油效果先知道
  • servlet实现oracle中读出文件并显示
  • 在Oracle中实现数据库的复制

相关软件:

  • 修改IIS的BANNER实现操作系统版本的隐藏(PDF)
  • VB.NET面向对象的实现(CHM)
  • 解马赛克软件(GMASK) v1.70 绿色汉化版
  • XP内存优化工具任务管理器版(效果非常不错)

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

网站架设分类导航

  • DreamWeaver
  • HTML/CSS
  • Flash
  • Firework
  • FrontPage
  • 建站指南

本类经典文章推荐

  • 互动Flash动画:跟随鼠标移动拉伸的...
  • FlashMX特效之扩散与挤压
  • 三步打造超炫Flash按钮
  • 出手不凡:SWISHmax 制作 Flash M...
  • Flash动画制作技巧之如何掌握移动...
  • Flash制作动画之掌握基本按钮知识
  • Flash MX 2004通过鼠标把位图矢量...
  • 互动Flash动画:跟随鼠标移动拉伸的...
  • 让手机也“闪”起来
  • FLASH菜单链接动态管理

Flash阅读排行

  • 新鲜玩法 Flash动画也可用电视观看
  • Flash动画特效制作技巧:文字炸开...
  • Flash动画制作技巧之如何掌握移动...
  • Flash特效制作常用的源代码大放送
  • FLASH菜单链接动态管理
  • 让手机也“闪”起来
  • 一个模仿Acdsee浏览图片的效果
  • Flash ActionScript 3 新特性与变...
  • FLASH AS实现马赛克效果
  • flash8滤镜代码提示的小窍门

网站架设阅读总排行

  • 用层模拟下拉列表框
  • 教你如何用Dreamweaver制作电子相...
  • 用Dreamweaver插件制作动态下拉菜...
  • 突破网页文字无法复制局限
  • 如何设计首页???(解答)
  • Dreamweaver基础技巧-布局阶段
  • 流程图软件Visio作“高难度”网页
  • 网页制作隐藏对象巧利用
  • 站点-网页布局设计基础
  • 动态QQ表情DIY Fireworks轻松搞定

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有