FLASH 调用摄像头 JS中方法触发拍照,并将照片保存到本地文件夹
来源:互联网 发布:sql的exists 编辑:程序博客网 时间:2024/06/14 20:58
使用 FLASH CS4 开发
有些方法和实现过程是在网上趴的,经过自己的修改,为自己所用。
建一个文件,不用添加任何控件,直接F9 输入如下代码:
import com.adobe.images.JPGEncoder;
import com.adobe.images.PNGEncoder;
var vid:Video;
var cam:Camera = Camera.getCamera();
cam.setMode(400,450,15) // 设置相机在长,宽,侦
// 显示文本信息
var tf:TextField = new TextField();
tf.x = 480; // 文本显示在起始位置
tf.autoSize = TextFieldAutoSize.LEFT;
addChild(tf);
if (cam != null) {
cam.addEventListener(StatusEvent.STATUS, statusHandler);
vid = new Video(400,450);
vid.attachCamera(cam);
// 旋转270度 (因为我的设备上摄像头向左转了90度,所以需要下边在方法)
centerRotate(vid, 270);
}
function statusHandler(event:StatusEvent):void {
if (!cam.muted) {
vid.width = cam.width;
vid.height = cam.height;
addChild(vid);
}
cam.removeEventListener(StatusEvent.STATUS, statusHandler);
}
/* 一个测试方法,可以用JS调用的 */
ExternalInterface.addCallback("testAS",testFunc);
function testFunc(txt:String):String{
tf.appendText("2222:::"+txt+"\n");
ExternalInterface.call("saveBrushCardInfo","");
return "SUCCESS";
}
// 获得照片信息(该方法被JS调用)
ExternalInterface.addCallback("getImageAS",getImage);
function getImage(url:String):void{
// 拍照获得照片byte数组
var bitmapData:BitmapData = new BitmapData(vid.height, vid.width-55, false, 0xFFCC00);
bitmapData.draw(vid);
var bytes:ByteArray = PNGEncoder.encode(bitmapData);
// 将照片byte发送请求到后台处理
var req:URLRequest = new URLRequest(url);
req.data = bytes;
req.method = URLRequestMethod.POST;
req.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(req);
//tf.appendText("3333333333333:::"+"\n");
loader.addEventListener(Event.COMPLETE, completeHandler);
}
// 回调函数, 调用JS方法 saveBrushCardInfo
function completeHandler(evt:Event):void {
// ExternalInterface.call("asCallJS","I,m AS!");
ExternalInterface.call("saveBrushCardInfo","");
// trace(evt.target.data);
}
/**
* 绕中心点旋转
* @param mc 元件
* @param angle 角度 360 280
*/
function centerRotate(mc:DisplayObject,angle:Number):void{
//获取mc不旋转时候的尺寸
var currentRotation:Number = mc.rotation;
//tf.appendText("currentRotation:::"+currentRotation+"\n");
mc.rotation = 0;
var mcWidth:Number = mc.width;
var mcHeight:Number = mc.height;
//mc.rotation = currentRotation;
//获取mc当前中心点坐标
var pointO:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//tf.appendText("pointO:::"+pointO.x +" --- "+pointO.y +"\n");
//旋转mc
mc.rotation = angle;
//获取mc旋转后中心点坐标
var pointO2:Point = mc.localToGlobal(new Point( mcWidth/ 2, mcHeight / 2));
//tf.appendText("pointO2:::"+pointO2.x +" --- "+pointO2.y +"\n");
//平移到原来中心点O
var p3:Point = pointO.subtract(pointO2); // 减去
//tf.appendText("p3:::"+p3.x +" --- "+p3.y +"\n");
var matrix:Matrix = mc.transform.matrix;
matrix.translate(p3.x, 400);
mc.transform.matrix = matrix;
}
// 向左旋转90
function scaleLeft(bmp:BitmapData):BitmapData{
var m:Matrix = new Matrix();
m.rotate(-Math.PI/2);
m.translate(0,bmp.width);
var bd:BitmapData = new BitmapData(bmp.height, bmp.width,false);
bd.draw(bmp,m);
return bd;
}
未完,稍后待续……
- FLASH 调用摄像头 JS中方法触发拍照,并将照片保存到本地文件夹
- 安卓调用系统摄像头拍照并保存到本地
- AIR应用 调用摄像头拍照并把照片保持到本地文件夹
- java 如何调用摄像头并拍照保存照片
- OpenCV011:调用本地左右摄像头拍照并保存到指定路径
- html5调用摄像头实现拍照并本地保存
- IPad开发拍照并将图片保存到照片库中
- android调用系统相机功能,并将照片保存到本地
- Android应用中调用手机摄像头拍照并保存
- AS3摄像头拍照保存到本地
- android开发(15) 调用摄像头拍照,保存在照片到数据库。
- win8 metro 调用摄像头拍摄照片并将照片保存在相应的位置
- 调用Matlab摄像头函数,拍照并保存
- android Camera摄像头-Surface view 预览拍照 并将拍的照片插入到系统图库
- html5实现摄像头拍照并使用java进行照片保存
- 拍照并保存到本地相册中 ios
- unity调用摄像头进行拍照和保存照片
- android调用摄像头拍照,从相册中选择照片并裁剪
- linux环境下启动HA后,eclipse新建MapReduce project出现9000端口问题
- windows将本地项目上传到github仓库
- 读书记录:把时间当做朋友
- Python 清屏方法
- display各个属性值详解
- FLASH 调用摄像头 JS中方法触发拍照,并将照片保存到本地文件夹
- Android (OutOfMemory )Bitmap使用优化
- grunt构建&文件合并&压缩
- 有关git中.ignore的创建(方法一)
- vue学习笔记
- AAPT err(Facade for): libpng error: Not a PNG file 错误解决
- shared_ptr,weak_ptr,unique_ptr
- LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”
- [leetcode]50. Pow(x, n)