最近一段时间,由于网站的需要,做了一个在线拍照的flash,刚开始的时候也是什么都不懂,对flash也是了解点皮毛,经过不断的在网上查阅资料。经过一周的努力,终于被我搞定了。

主要用到Camera类,MovieClip 类,BitmapData类,LoadVars类,如果要实现这个功能,必须先去了解这几个类

实现的过程如下。

1,先在库中新建一个视频元件,把视频元件拖放到场景中,取名为my_video,新建一个按纽元件,取名为btn_print.

2,加入以下代码实现视频的播放
myCam = Camera.get();
myCam.setMode(266,200,10);
my_video.attachVideo(myCam);

3 ,以下代码实现图片的获得和上传
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.ColorTransform;

class PrintScreen {
 
 public var addListener:Function
 public var broadcastMessage:Function
 
 private var id:   Number;
 public  var record:LoadVars;
 
 function PrintScreen(){
  AsBroadcaster.initialize( this );
 }
 public function print(mc:MovieClip, w:Number, h:Number){
  broadcastMessage("onStart", mc);
  w = Math.floor(w);
  h = Math.floor(h);
  var bmp:BitmapData = new BitmapData(w, h, false);
  record = new LoadVars();
  record.width  = w
  record.height = h
  record.cols   = 0
  record.rows   = 0
  bmp.draw(mc);
  id = setInterval(copysource, 1, this, mc, bmp);
 }
 
 private function copysource(scope, movie, bit){
  var pixel:Number
  var str_pixel:String
  scope.record["px" + scope.record.rows] = new Array();
  for(var a = 0; a < bit.width; a++){
   pixel     = bit.getPixel(a, scope.record.rows )
   str_pixel = pixel.toString(16)
   scope.record["px" + scope.record.rows].push(str_pixel)
  }
 
  scope.record.rows += 1
  if(scope.record.rows >= bit.height){
   clearInterval(scope.id)
   bit.dispose();
  }
 }
}

4 以下代码在服务器段接受数据,生成图片(jsp版)
String width = request.getParameter("width");
 String height = request.getParameter("height");
int w = Integer.parseInt(width);
  int h = Integer.parseInt(height);
try {
   OutputStream fos = response.getOutputStream();
   BufferedImage bf = new BufferedImage(w, h,
     BufferedImage.TYPE_INT_RGB);

for (int i = 0; i < bf.getHeight(); i++) {
    String data = request.getParameter("px" + i);
    String[] ds = data.split(",");
    for (int j = 0; j < bf.getWidth(); j++) {
     int d = Integer.parseInt(ds[j], 16);
     bf.setRGB(j, i, d);
    }
   }

ImageWriter writer = null;
   ImageTypeSpecifier type = ImageTypeSpecifier
     .createFromRenderedImage(bf);
   Iterator iter = ImageIO.getImageWriters(type, "jpg");
   if (iter.hasNext()) {
    writer = (ImageWriter) iter.next();
   }
   if (writer == null) {
    return null;
   }
   IIOImage iioImage = new IIOImage(bf, null, null);
   ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);

param.setCompressionQuality(0.2f);

// save to file
   ImageOutputStream outputStream2 = ImageIO
     .createImageOutputStream(response.getOutputStream());
   writer.setOutput(outputStream2);
   writer.write(null, iioImage, param);

fos.close();

} catch (Exception e) {
   e.printStackTrace();
  }
System.out.println("w = " + w + ",h=" + h);
 response.setContentType("image/jpeg");
 return null;

在线拍照的flash相关推荐

  1. flash在线拍照并上传到后台(servlet)

    一.flash在线拍照并上传到后台(servlet) 第一步:先新建一个ActionScript文件:ShiBieFunction.as 该文件的核心代码如下: =========使用摄像头获取视频流 ...

  2. 网页中实现flash在线拍照

    最近接触了一下Flash,做了个flash在线拍照的效果. 其实这个东西怎么实现 很多人有讲 网上搜索主要有2篇内容(稍后给出),但是真正应用来说,却还存在一些问题. 最基本来说,此功能的实现包含2个 ...

  3. 在线php保存图片格式,php 保存flash在线拍照发送过照片

    php 保存flash在线拍照发送过照片 define('SD_ROOT', dirname(__FILE__).'/'); @header("Expires: 0"); @hea ...

  4. Javascript+PHP实现在线拍照功能 (转)

    Javascript+PHP实现在线拍照功能 我们在一些WEB应用中可能会遇到这样的情况,用户需要自己现场拍照并上传到会员系统.比如驾校采集指纹拍照流程.考试现场采集照片等.我们今天要讲的是如何使用j ...

  5. 开始做在线拍照功能了

    今天开始要做在线拍照的功能了.参考的例子就是51的在线拍照. 小试了一下,原理不是太难.一个是用于捕获摄像头的类,然后是用滤镜来实现特殊效果.比较复杂的一点是关于图片上传至服务器端的实现.另外,关于滤 ...

  6. php在线拍照代码,Javascript+PHP实现在线拍照功能

    实现这个功能的前提是你的电脑设备上需要安装有摄像头设备,以及你的浏览器需要支持flash. HTML Javascript+PHP实现在线拍照功能 在body中加入一个用于调用摄像组件的容器id#ca ...

  7. html5 mysql 展示_基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片

    本文用示例讲述了如何使用jQuery与PHP及Mysql结合,实现WEB版在线拍照.上传.显示浏览的功能,ajax交互技术贯穿本文始末,所以本文的读者要求具备相当熟悉jQuery及其插件使用和javs ...

  8. 手机怎么在线拍照翻译英语?只要几个步骤轻松解决

    手机怎么在线拍照翻译英语?相信很多朋友在看新闻以及一些报到会看到一些外网的内容,不免有些是纯英文的内容,像我这种英语水平比较差的每次都会打开搜索引擎,一个个把英文字母输入进去搜索翻译,但是后来有个小伙 ...

  9. java+flash在线拍照和编辑,保存到服务器(Spring3.2.2+swf+jquery)

    1. 支持两种方式选择素材图片: <1>. 选择本地图片 支持jpg.png.gif三种格式的图片 支持任意大小.任意尺寸的图片 <2>. 用摄像头拍照 自动检测和调用摄像头 ...

最新文章

  1. BZOJ2215[Poi2011]Conspiracy——2-SAT+tarjan缩点
  2. mysql 插入数据 自增长_MySQL ------ 插入数据(INSERT和insert select)(二十)
  3. swing皮肤包 substance
  4. nginx设置跨域问题
  5. 规范化之路(一) Checkstyle插件安装使用
  6. 梦里看到你为我写的情书
  7. 安装postgreSQL出现configure:error:readline library not found解决方法及pg安装全过程
  8. Android 9.0 10.0 手动安装Persistent app失败的解决方案
  9. 【vue路由跳转外部链接】
  10. python 悬浮窗_python浮窗
  11. 八篇深度学习的开山巨作
  12. 法拉科机器人接头_【发那科】图解FANUC机器人I/O信号板
  13. 学习与尝试 --> 事件风暴
  14. LOL中那些不可错过的精彩对局!!!
  15. Android 天气APP(二十七)增加地图天气的逐小时天气、太阳和月亮数据
  16. Windows 平台中采用 beamer 时中文书签乱码解决方法
  17. 黑莓行货手机是否都有运营商(移动,电信,联通)的logo?
  18. 外国人最羡慕中国人什么?
  19. 怎么在mac系统下查看文件的真实路径
  20. python中的目录是什么_python | Linux各目录及每个目录的详细介绍

热门文章

  1. 虚幻4蓝图实现昼夜交替
  2. python对矩阵进行(-1/2)方
  3. 眼底影像血管分割(一):选择通道
  4. 试用wing ide
  5. 世上最经典的爱情诗句 1
  6. 编程在哪学,可以免费自学编程的10个网站
  7. Undertow,Tomcat和Jetty服务器之间的区别
  8. Github为什么没有记录你的Contributions
  9. 端午节特别活动 | 在 Python 中制作端午节游戏
  10. 职场人如何用时间管理软件提升效率