我想知道是否有人知道任何用于从相机获取所有图片的 Adobe Flash 解决方案,以便我可以自动将它们上传到我的网站(当他们访问我的网页时)。
最好这一切都在网络浏览器中,但我不确定这是否可能。如果不是,有没有好的方法可以做到这一点?
我想知道是否有人知道任何用于从相机获取所有图片的 Adobe Flash 解决方案,以便我可以自动将它们上传到我的网站(当他们访问我的网页时)。
最好这一切都在网络浏览器中,但我不确定这是否可能。如果不是,有没有好的方法可以做到这一点?
您可以使用 AIR 或生成桌面/移动软件的 MDM Zinc 之类的闪存扩展器来做到这一点。但是出于非常好的安全原因,您不能使用网络上的 flash 来执行此操作。但是,您可以以正确的方式打开 FileReference 框并让用户选择要给您的文件。
实际上,从桌面网络摄像头做这样的事情是没有问题的。
您必须请求使用相机的权限,并且用户将看到一个对话框,指示该站点希望使用相机,但只要他们接受,您就可以从相机中抓取图像。
首先,您需要初始化并连接相机
var cam:Camera = Camera.getCamera();
var video:Video = new Video(320,240);
video.attachCamera(cam);
addChild(video);
然后你需要创建一个位图数据对象:
var bitmapData:BitmapData = new BitmapData(video.width,video.height);
然后,当您需要捕获相机时,您可以使用绘图功能:
bitmapData.draw(video);
我建议您从as3corelib中获取 jpg 编码器,以便将其编码为 jpg,然后将其发送到您的服务器。通过使用UploadPostHelper ,上传过程变得更加容易,这是一个创建多部分数据表单的好类:
ByteArray byteArray = JPGEncoder.encode( bitmapData );
var urlRequest : URLRequest = new URLRequest();
urlRequest.url = 'http://your.server.com/destination';
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData( 'image.jpg', byteArray );
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );
// create the image loader & send the image to the server;
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load( urlRequest );
当然,您可以收听完整的事件并从您的服务器传回任何信息。希望有帮助。