将网络摄像头捕获的静态图像保存在 Flash 中
我已经编写了足够的代码来预览 Flash 中的网络摄像头视频。
现在,我想以 10 秒的间隔捕获图像。
这是我的代码:
import flash.display.BitmapData
import flash.geom.Matrix
import com.adobe.images.JPGEncoder;
import flash.net.FileReference;
//get the default camera
//change your Default camera using the Flash Player Settings.
cam=Camera.get()
//this event is called whenever permission to access the local camera, is accepted or denied by the user
cam.onStatus=function(e)
{
//if we are given permission
if(e.code == "Camera.Unmuted")
{
//start the application
initialize()
}
else
{
System.showSettings(3)
}
}
var snapshot:BitmapData=new BitmapData(cam._width,cam._height);
function takeSnapshot()
{
snapshot.draw(cam,new Matrix());
}
//if there are no Cameras
if(cam == null)
{
System.showSettings(3)
}
else
{
cam.setMode(1024, 768, 30);
cam.setQuality(10000,0);
output.attachVideo(cam);
setInterval(this,"takeSnapshot",1000);
}
请问有什么帮助吗?
我是一个彻底的 Flash 新手。
谢谢, 里希。
I have written enough code to preview the webcam video in Flash.
Now, I want to capture images at 10 second intervals.
Here's my code:
import flash.display.BitmapData
import flash.geom.Matrix
import com.adobe.images.JPGEncoder;
import flash.net.FileReference;
//get the default camera
//change your Default camera using the Flash Player Settings.
cam=Camera.get()
//this event is called whenever permission to access the local camera, is accepted or denied by the user
cam.onStatus=function(e)
{
//if we are given permission
if(e.code == "Camera.Unmuted")
{
//start the application
initialize()
}
else
{
System.showSettings(3)
}
}
var snapshot:BitmapData=new BitmapData(cam._width,cam._height);
function takeSnapshot()
{
snapshot.draw(cam,new Matrix());
}
//if there are no Cameras
if(cam == null)
{
System.showSettings(3)
}
else
{
cam.setMode(1024, 768, 30);
cam.setQuality(10000,0);
output.attachVideo(cam);
setInterval(this,"takeSnapshot",1000);
}
Any help please?
I am a total Flash newbie.
Thanks,
Rishi.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您想将其保存到用户的磁盘上,请记住,您不能自动执行此操作,因为出于安全原因,FileReference 类的 save() 方法只能在特定的用户操作(单击、鼠标按下和我)之后使用。猜测按键)。获得位图数据后,您将需要来自 http://code.google.com/ 的 jpeg 编码器p/as3corelib/ 对您的 img 进行编码并将其保存到磁盘。像这样的事情:
在此处查看 FileReference 文档 http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/FileReference.html,以便您了解还可以用它做什么。
If you want to save it to the user's disk keep in mind that you can't do it automatically as, for security reasons, the save() method of the FileReference class can only be used after specific user actions (click, mousedown and I guess key-presses). After you have your bitmapdata you'll need the jpeg encoder from http://code.google.com/p/as3corelib/ to encode your img and save it to the disk. Something like this:
Take a look at the FileReference doc here http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/FileReference.html so you see what else you can do with it.