WebSnap

écrit le Samedi 11 mars 2006

La version 8 de Flash apporte son lot de nouveautés, la classe BitmapData fait partie du lot et permet de manipuler des images dans flash.
Afin de tester un peut tout ça, j’ai fait une petite application -WebSnap - qui utilise quelques unes de ces nouveautés.
WebSnap permet de faire des captures d’image à partir d’une webcam grâce à la classe BitmapData qui est ensuite envoyée à un fichier php qui enregistre l’image en jpeg (chose que Flash ne peut pas encore faire tout seul). J’ai aussi testé les filtres et notement le filtre “glow” pour faire les effets de mouseover sur les boutons.

Pour ceux que ça interesse voici quelques bouts de codes:

Actionscript:
[code lang=”actionscript-french”]
import flash.display.BitmapData;
// myCam est un object video
myCam.attachVideo(Camera.get());
// On crée une occurence de la classe bitmapData au format de notre image
var bitmap = new flash.display.BitmapData(160, 120, true, 0×000000000);
//on créé le clip qui va contenir la capture
createEmptyMovieClip(”snapshot”, 1);
// attacheBitmap permet afficher le bitmap dans le clip snapshot
snapshot.attachBitmap(bitmap, 1);
// action du bouton capture
myBtn.onRelease = function() {
// Copie l’image de la webcam dans l’objet Bitmap
bitmap.draw(myCam);
// On récupère les données brutes du bitmap qu’on copie dans un tableau
imageData = new LoadVars();
imageData.rawData = new Array();
for (i=0; i<160; i++) {
for (j=0; j<120; j++) {
imageData.rawData.push(bitmap.getPixel(i, j));
}
}
// On envoie les données de l'image vers le fichier PHP
imageData.sendAndLoad("createImage.php", null, "POST");
};
[/code]

PHP:
[code lang="PHP"]
$pix = $_POST['rawData'];
if(isset($pix)){
$pixImage = explode(",",$pix);
settype($pixImage[1],'integer');
// créé une image 160x120
$output = imagecreatetruecolor(160,120);
$cpt=0;
//on reconstitue l'image pixel par pixel
for($i=0;$i<160;$i++){
for($j=0;$j<120;$j++) {
imagesetpixel($output,$i,$j,$pixImage[$cpt]);
$cpt++;
}
}
// On exporte l'image
imagejpeg($output,"capture.jpg",80);
imagedestroy($output);
}
?>
[/code]


1076 commentaires pour 'WebSnap'

  1.  
    Thom
    31 octobre 2006 | 18:19
     

    Belle application. Est -il possible de l’utiliser en plus simple avec non pas un film ou un live webcam mais avec une image composée sur la scène ?

  2.  
    31 octobre 2006 | 18:58
     

    oui, on peut tout aussi bien générer une image à partir d’un clip

    var bitmap = new flash.display.BitmapData(160, 120, true, 0×000000000);
    bitmap.draw(nomDinstanceDunClip);

Laisser un commentaire

(requis)

(requis)


Informations
Les retours à la ligne et les paragragphes sont générés automatiquement. Votre adresse email n'est jamais affichée.

Utilisez les boutons ci-dessous pour personnaliser votre message.