Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как правильно получить снапшот с камеры и отправить на сервер (http://www.flasher.ru/forum/showthread.php?t=208484)

syegorius 18.07.2014 22:19

Как правильно получить снапшот с камеры и отправить на сервер
 
доброе время суток.

столкнулся с такой проблемой, что нужно сделать снапшот пользователя с его камеры, показать ему что сфотографированно и потом отправить это на сервер.

нашел вот эту библиотеку http://www.xarg.org/project/jquery-webcam-plugin/. начал разбираться. в итоге в as-файле есть такие ф-ции:

Код AS3:

public static function capture(time:Number):Boolean {//начало
 
                if (null != camera) {
 
                        if (null != buffer) {
                                return false;
                        }
 
                        buffer = new BitmapData(Stage.width, Stage.height);
                        ExternalInterface.call('webcam.debug', "notify", "Capturing started.");
 
                        if ("stream" == mode) {
                                _stream();
                                return true;
                        }
 
                        if (!time) {
                                time = -1;
                        } else if (time > 10) {
                                time = 10;
                        }
 
                        _capture(time + 1);//попадаем сюда
 
                        return true;
                }
                return false;
        }
 
        private static function _capture(time:Number):Void {
 
                if (null != interval) {
                        clearInterval(interval);
                }
 
                if (0 == time) {
                        buffer.draw(_root.video);
                        ExternalInterface.call('webcam.onCapture');//здесь конец
                        ExternalInterface.call('webcam.debug', "notify", "Capturing finished.");
                } else {
                        ExternalInterface.call('webcam.onTick', time - 1);
                        interval = setInterval(_capture, 1000, time - 1);
                }
        }

подскажите, как мне отсюда достать содержимое картинки и передать его в яваскрипт, что б создать картинку с полученым снапшотом?

заранее спасибо за помощь!

Nooob 19.07.2014 06:28

не понимаю зачем яваскрипт, jquery.

снапшот с отправкой на сервер будет так:
Код AS3:

var camera:Camera = Camera.getCamera();
var video:Video  = new Video(camera.width, camera.height);
video.attachCamera(camera);
camera.addEventListener(ActivityEvent.ACTIVITY, onActivity);
 
function onActivity (event:Event):void
{
        camera.removeEventListener(ActivityEvent.ACTIVITY, onActivity);
 
        var bitmapData:BitmapData = new BitmapData(video.width, video.height);
        bitmapData.draw(video);
 
        var boundary:String    = Math.round(Math.random() * 100000000).toString();
        var byteArray:ByteArray = new ByteArray();
        byteArray.writeUTFBytes("--" + boundary + "\nContent-Disposition: form-data; name=\"Filedata\"; filename=\"foto.png\"\nContent-Type: application/octet-stream\n\n");
        bitmapData.encode(bitmapData.rect, new PNGEncoderOptions(), byteArray);
        byteArray.writeUTFBytes("\n--" + boundary + "-");
 
        var request:URLRequest = new URLRequest("http://localhost/1.php");
        request.contentType = "multipart/form-data; boundary=" + boundary;
        request.data = byteArray;
        request.method = URLRequestMethod.POST;
 
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(Event.COMPLETE, trace);
        loader.load(request);
}

PHP код:

<?
move_uploaded_file
($_FILES['Filedata']['tmp_name'], $_FILES['Filedata']['name']);
?>



Часовой пояс GMT +4, время: 23:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.