IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Impression du champ caméra


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut Impression du champ caméra
    Bonjour à tous,

    Je suis débutant en Flash et je rencontre un petit soucis.

    Je travaille avec Flash CS5.5 en version d'évaluation.

    A partir d'un champ caméra, je voudrais photographier ce que l'on voit depuis la caméra dans un objet bitmapdata. Ceci fonctionne bien, mais la fonction draw affiche une image de 160x120 alors que je voudrais qu'elle fasse 640x480.

    Je ne sais si la taille de l'objet vidéo sur la scène a une importance, mais je l'ai mis à 320x240.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //paramètres
    Stage.scaleMode = "noScale";
    Stage.align = "";
    System.showSettings(0);
     
    import flash.display.BitmapData;
     
    //attache le flux video
    localCamera = Camera.get();
    myCam.attachVideo(localCamera);
    myCam.setMode(640,480,15);
     
    var bitmap = new flash.display.BitmapData(640, 480, false, 0x00000000);
    this.createEmptyMovieClip("copie", 2);
    copie.attachBitmap(bitmap, 2, "auto", true);
    copie._x = 200;
     
    // dessine l'image
    btn.onRelease = function() {
    	bitmap.draw(myCam);
    };
    Si quelqu'un pourrait m'aider, merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    webcam-stream 480x320 pixels sur la scène
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
        var video:Video;
        var camera:Camera;
     
        setupCamera(480,320);
     
        function setupCamera(w:int,h:int):void {
            camera = Camera.getCamera();
            camera.addEventListener(StatusEvent.STATUS, camStatusHandler);
            camera.setMode(w,h,stage.frameRate);
     
            video = new Video(w,h);
            video.attachCamera(camera);
            addChild(video);
        }
     
        function camStatusHandler(event:StatusEvent):void {
            // Camera.Muted or Camera.Unmuted -> User's security
            trace(event.code);
        }

    Button shotBtn qui appel la méthode createSnapshot();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        var imgBD:BitmapData;
        var imgBitmap:Bitmap;
     
        shotBtn.addEventListener(MouseEvent.CLICK, createSnapshot);
     
        function createSnapshot(event:MouseEvent):void {
            imgBD = new BitmapData(video.width,video.height);
            imgBD.draw(video);
     
            imgBitmap=new Bitmap(imgBD);
            addChild(imgBitmap);
        }

    button qui supprimera le dernier snapshot généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        removeBtn.addEventListener(MouseEvent.CLICK, removeSnapshot);
     
        function removeSnapshot(event:MouseEvent):void {
            removeChild(imgBitmap);
        }

    Envoyer le snapshot a PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
        import com.adobe.images.JPGEncoder;
     
        var imgBA:ByteArray;
        var jpgEncoder:JPGEncoder;
     
        jpgEncoder = new JPGEncoder(90);
        sendBtn.addEventListener(MouseEvent.CLICK, sendImage);
     
        function sendImage(event:MouseEvent):void {
            imgBA = jpgEncoder.encode(imgBD);
     
            var sendHeader:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");
     
            var sendReq:URLRequest = new URLRequest("path-to-php.php");
            sendReq.requestHeaders.push(sendHeader);
            sendReq.method = URLRequestMethod.POST;
            sendReq.data = imgBA;
     
            var sendLoader:URLLoader;
            sendLoader = new URLLoader();
            sendLoader.addEventListener(Event.COMPLETE, imageSentHandler);
            sendLoader.load(sendReq);
        }
    Le fichier php appelé dans le script as3 "nom.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <?php
        if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
            $uniqueStamp = date(U);
            $filename = $uniqueStamp.".jpg";
            $fp = fopen( $filename,"wb");
            fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
            fclose( $fp );
         
            echo "filename=".$filename."&base=".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]);
        }
        ?>
    Voilà j'avais trouvé ce script sur le net, ça pourrait surement t'aider à comprendre les différentes étapes pour réaliser ce que tu souhaite.
    A+

Discussions similaires

  1. [WD18] Champ caméra et Zoom
    Par ihih45 dans le forum WinDev
    Réponses: 3
    Dernier message: 08/08/2013, 16h47
  2. [WD16] Champ Caméra : Taille de l'image, Erreur si pas de webcam
    Par EriCstoFF dans le forum WinDev
    Réponses: 2
    Dernier message: 20/06/2012, 17h00
  3. impression de champs dans un état
    Par ronin.01 dans le forum IHM
    Réponses: 4
    Dernier message: 25/01/2011, 20h41
  4. Impression et champs disabled
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 07/04/2008, 15h34
  5. Réponses: 1
    Dernier message: 04/03/2008, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo