当前位置:首页 > 开发 > Web前端 > 前端 > 正文

web富客户端

发表于: 2014-09-26   作者:1078327732   来源:转载   浏览:
摘要: [转]使用flash摄像头拍照的简单实践  2010-12-06 15:45:32|  分类: FLASH编程专区 |  标签: |举报 |字号大 中 小 订阅 打开Flash CS3,新建一个Flash文件(Script 2.0)。命名为pagea.fla 第一步:      在库中建立一个视频元件,类型
[转]使用flash摄像头拍照的简单实践  2010-12-06 15:45:32|  分类: FLASH编程专区 |  标签: |举报 |字号大

小 订阅
打开Flash CS3,新建一个Flash文件(Script 2.0)。命名为pagea.fla

第一步:      在库中建立一个视频元件,类型选择:视频(受 ActionScript 控制)。      按F11打开库面板,右键空白地方出现一个弹出菜单,选择“新建视频”,随便起个名字。

第二步:       将视频元件拖到场景中,并调整尺寸到想要的大小。并起名为“camera”。同时在该图层放置两个Button,分别命名为“btnCamera”和“btnUpload”。

第三步:      新建一个图层,命名为“代码层”    点击时间轴第一帧,按F9打开代码面板,粘贴如下代码:



//view plaincopy to clipboardprint?
//camera是在场景中一个Video实例
//注意如果要想获取自己想要拍照大小,先做一个你想要大小的FLV文件,然后video选Embedded
camera.clear();
//摄像头控制对象
var cam:Camera = Camera.get();
if ( cam   == null){
   //code here if client no camera installed
}
//init variable
photow = new Number(100);
photoh = new Number(120);
cam.setMode(photow, photoh, 10, true);
camera.attachVideo(cam); //绑定摄像头视频流到video
//该对象用于实现发送数据到网页可get或post
var lv:LoadVars;
lv = new LoadVars();
//当按下拍照按纽
btnCamera.onRelease = function ()
{
    //获取当前视频画片
     saveCamera();
   //...
};
//toolbar.btnCameraRe.onRelease = function(){
  //   ...
    //saveCamera();
//}
function saveCamera(){
    //新建一个bitmapdate对象并获取video上的图像信息
    lv.bm = new flash.display.BitmapData(photow, photoh,true, 0); 
    lv.bm.draw(camera);
    //photoPreview是在场景中的一个Movie clip实例,用于输出bitmapdate实现照片预缆  
    var tempObj = _root.createEmptyMovieClip("photo", 100);
tempObj._x = 63.0;
tempObj._y = 53.0;
    tempObj._width = 100;
tempObj._height = 120;
    tempObj.attachBitmap(lv.bm, 1); 
camera.attachVideo(null);
}       
btnCell.onRelease = function (){       
    _root.photo._visible = false;
camera.attachVideo(cam);
   //...
};
//上传照片到服务器
btnUpload.onRelease = function(){
    //读取图片矩形范围的像素信息,并以字符串的形式连接起来 begin
     i = lv.bm.height;
     j = lv.bm.width;
     rgb_array = "";
    for (y = i - 1; y >= 0; y--)
     {
        for (x = 0; x < j; x++)
         {
             color = lv.bm.getPixel(x, y).toString(16);
             rgb_array = rgb_array + (color + ",");
         } // end of for
     } // end of for
     lv.height = i;
     lv.width = j;
     lv.rgb_array = rgb_array;
    //读取图片矩形范围的像素信息,并以字符串的形式连接起来 end
    //发送到要处理的页面URL,可以在页面通过Request.Form["名称"]获取值,如:Request.Form["rgb_array"]
     lv.sendAndLoad("pageb.jsp", lv, "POST");
    //当页面返回信息即页面处理完成后,触发的行为
    /*
lv.onLoad = function (success)
     {
         if (success)
         {
             //跳转到其他页面
             getURL("pagea.jsp", "_self");
         }
     };*/


第四步:     按F12把flash导出成为html,你可以得到pagea.fla,pagea.html, pagea.swf和AC_RunActiveContent.js。 把pagea.html重命名为pagea.jsp,放置到你的jsp服务器目录下

第五步:    新建一个文件叫做pageb.jsp。粘贴如下代码




<%@page import="java.io.*,java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*,javax.imageio.stream.*"%><%   
  
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();   
  
    OutputStream fos = new FileOutputStream(new File("c:\\a.jpg"));   
  
    BufferedImage bf = new BufferedImage(w, h,   
  
      BufferedImage.TYPE_INT_RGB);   
  
     String data = request.getParameter("rgb_array");   
  
     String[] ds = data.split(",");   
  
    int leng=ds.length-1;   
  
   for (int i = bf.getHeight()-1; i>=0 ; i--) {     
  
    for (int j = 0; j < bf.getWidth(); j++) {   
  
     int d = Integer.parseInt(ds[leng-(i*w+(bf.getWidth()-j-1))], 16);   
  
     //System.out.print(d);   
  
      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 ;   
  
    }   
  
    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());   
  
    ImageOutputStream outputStream2 = ImageIO.createImageOutputStream(fos);   
  
    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 ;   
%>

web富客户端

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
现在的网页设计讲究啥? 界面好看,用户体验。 意味着啥? 一堆JS,写到你手软。 所谓富客户端,就
1. 桌面java图形API:swing,awt,java2D 2. java2D是java的图形库 3. Swing的渲染 <1>利用Swing
过去几年里,RIA(Rich Internet Applications的缩写)的呼声日益高涨。但请勿将RIA与“rich client
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特
最近项目需要使用到了富编辑,经过筛选最后决定使用《kindeditor》这个富编辑器。下面将用法记录于
当前的富客户端可以包含两部分:分别为JSP页面和通过富客户端js组件(如extjs)渲染的组件化窗口页。
项目目录结构: cms APP urls.py: #!/usr/bin/env python # encoding=utf-8 from django.conf.urls.
WPF,即Windows Presentation Foundation,是一套开发Windows应用程序的.NET API。已经有太多资料谈
在富web程序里,JavaScript不再是用来为网页增色的玩物,而成为真正的重点。当一个页面上有了越来越
DWZ富客户端框架设计目标是简单实用、扩展方便灵活、快速开发、RIA思路、轻量级 设计思路 第一次打
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号