Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

NEGATION D'UNE IMAGE BITMAP (FLASH 8 BETA)


Description

Cliquez pour voir la capture en taille normale
Voila un petit exemple suite à la source déposée concernant flash player 8 et sa gestion des pixels.

Rappellons que le player est dispo gratuitement ici :   http://www.macromedia.com/software/flashplayer/public_beta/

Seules les anims en swf luent sous internet explorer marcheront avec la version 8.
(pas si vous lancer le swf directement)

Cette source est simple et explique comment utiliser les principaux atouts de la classe bitmap.
 

Source

  • pas besoin de source, c'est tout simple :
  • créer un clip avec une image dedans,
  • placer le sur la scene principale,
  • nommer le photo (nom du clip).
  • puis insérer ce code dans l'image 1 :
  • stop();
  • //on cré un nouvel objet bitmap de taille 320*240
  • //(en ce qui concerne le "true" j'ai pas encore trouver pq il est la.
  • bmp_in = new flash.display.BitmapData(320, 240, true);
  • //draw est une methode qui ecrit les pixels qu'il voit sur photo dans bmp_in
  • bmp_in.draw(photo);
  • //ma variable d'increment global pour la hauteur de l'image.
  • var y = 0;
  • //la fonction qui renvoie le negatif des pixels.
  • function negativ() {
  • //pour chaque ligne...
  • for (var x = 0; x<=320; x++) {
  • //... on chope la couleur du pixel sur l'image...
  • c = bmp_in.getPixel(x, y);
  • //... on calcul sa négation et on la renvoie dans l'image.
  • bmp_in.setPixel(x, y, rvb2rgb(0xFFFFFF-c));
  • }
  • //on rafraichit les pixels, à cet appel, tout les pixels changé dans l'objet bmp_in s'affiche.
  • _root.photo.attachBitmap(bmp_in, 1);
  • //on incremente la variable global
  • y++;
  • //si la hauteur en cours dépasse la hauteur de l'image...
  • if (y>240) {
  • //... on arrete le timer.
  • clearInterval(timer);
  • }
  • }
  • //petite fonction qui convertie une valeur rvb : 0xFF0000 pour du rouge
  • //en une valeur pour setpixel. (pq set pixel est comme ça? j'en sais rien...
  • function rvb2rgb(rvb) {
  • //petit calcul bidon...
  • return (0xFFFFFF-rvb)*-1;
  • }
  • //on trace les lignes de pixels de 0 à 240 à interval régulier.
  • var timer = setInterval(negativ, 1);
pas besoin de source, c'est tout simple :

créer un clip avec une image dedans,
placer le sur la scene principale,
nommer le photo (nom du clip).

puis insérer ce code dans l'image 1 :

stop();
//on cré un nouvel objet bitmap de taille 320*240
//(en ce qui concerne le "true" j'ai pas encore trouver pq il est la.
bmp_in = new flash.display.BitmapData(320, 240, true);
//draw est une methode qui ecrit les pixels qu'il voit sur photo dans bmp_in
bmp_in.draw(photo);
//ma variable d'increment global pour la hauteur de l'image.
var y = 0;
//la fonction qui renvoie le negatif des pixels.
function negativ() {
	//pour chaque ligne...
	for (var x = 0; x<=320; x++) {
		//... on chope la couleur du pixel sur l'image...
		c = bmp_in.getPixel(x, y);
		//... on calcul sa négation et on la renvoie dans l'image.
		bmp_in.setPixel(x, y, rvb2rgb(0xFFFFFF-c));
	}
	//on rafraichit les pixels, à cet appel, tout les pixels changé dans l'objet bmp_in s'affiche.
	_root.photo.attachBitmap(bmp_in, 1);
	//on incremente la variable global
	y++;
	//si la hauteur en cours dépasse la hauteur de l'image...
	if (y>240) {
		//... on arrete le timer.
		clearInterval(timer);
	}
}
//petite fonction qui convertie une valeur rvb : 0xFF0000 pour du rouge
//en une valeur pour setpixel. (pq set pixel est comme ça? j'en sais rien...
function rvb2rgb(rvb) {
	//petit calcul bidon...
	return (0xFFFFFF-rvb)*-1;
}
//on trace les lignes de pixels de 0 à 240 à interval régulier.
var timer = setInterval(negativ, 1);

Conclusion

telecharger le, puis bouton droit de la souris sur le swf -> ouvrir avec -> internet explorer (ou votre navigateur préféré)
ou lancer le .html (tout ça une fois le player 8 telechargé et installé evidement).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de BlackWizzard le 11/08/2005 22:57:58 administrateur CS

infos complementaires:
Utilisez mtasc pour compiler: www.motion-twin.fr
Vous pouvez aussi installer le plugin pour firefox (et non uniquement pour ie), et on trouve deja un stand-alone non officiel sur le net.

De beaux exemples sur protozoo.com (un GUI aussi, tres interessant)

signaler à un administrateur
Commentaire de goldenboy68 le 13/08/2005 02:56:34

...ça va permettre de développer la détection de mouvement dans Flash ça, non? A partir d'une série de photos, d'une source vidéo, webcam?

signaler à un administrateur
Commentaire de Prouprou_Sensei le 15/08/2005 12:46:11

Le true est un booleen qui dit si il y a de la transparence dans le bitmap.
Ta fonction rvb2rgb est inutile et surtout fausse le resultat.

bmp_in.setPixel(x, y, "0xFFFFFF"-c);
ou
bmp_in.setPixel32(x, y, "0xFFFFFFFF"-c); (pour gerer l'alpha plus tard ;))

Les guillemets suffisent :)

Merci pour ta source.

signaler à un administrateur
Commentaire de kingcobra le 16/08/2005 16:50:01

ok merci ça assure je comprenais vraiment pas et en plus pour trouver de la doc sur ces nouvelles fonctions c'est pas super simple...
J'ai remarqué qu'aprés que la fonction était fausse, et l'ai modifié. Mais bon on va opter pour les guillemets ;) .

signaler à un administrateur
Commentaire de manoloz le 16/08/2005 18:15:50

Flash qui gère les pixels??
trop fort, il va y'avoir de la concurrence avec after effects!

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Recherche de la couleur d'un pixel [ par kingcobra ] KiNgCoBrAsalut a tous,je cherche à choper la couleur d'un pixel de mon choix.-Un exemple sera plus parlant.-Un stage en 640*480 comporte le pixel x:12 faire clignoter mon bouton [ par la_guimauve ] voilà j'ai une image de fond sur laquelle j'ai défini des zones sensibles l'image est en Noir&blanc et lors d'un MouseOn la zone en question devient r mettre image en arriére plan [ par nickg ] bonjour j'ai un fichier fla tout simple (j'en suis pas l'auteur et je n'y connais pas grand chose) lorsque je l'ouvre, dans les propriétés en bas de l Modifier la couleur de l'image au passage de la souris - Besoin d'aide [ par lowlow38 ] Bonjour, J'aimerais créer un programme en Actionscript qui permette de modifier la couleur de l'image au passage de la souris. De préférence agir su Detection de couleur dans une image negative [ par ichamovich ] Bonjour ;Je suis entrain de devellopper une application qui permet de transformer une image capturer depuis une webcam en une image negative,le but es chgt de couleur sur une zone de mon image [ par la_guimauve ] le son sans l'image d'un FLV externe [ par kbeaba ] Bonjour tout le monde, Voil&#224;, j'ai une anim flash qui appelle deux flv externes avec la m&#233;tode netStream.play("mavideo.flv"); J'en ai un q des données qui se chargent avant la première image de la scéne principale (frame n°0 ???) [ par samichlamich ] Bonjour &#224; tous, je viens de finir un petit site en flash qui p&#233;se 212Ko. Je voulais donc mettre un preload qui charge toute la sc&#233;ne av mettre un son en bouc le sur une image sans la mettre dans la bibliotheque [ par ardies ] bonjour, voil&#224; je sais qu'on peut ins&#233;r&#233; un son dans une image a partir de la bibliotheque et le mettre en boucle dans "syn:"Mais je vo mettre un son en bouc le sur une image sans la mettre dans la bibliotheque [ par ardies ] bonjour, voil&#224; je sais qu'on peut ins&#233;r&#233; un son dans une image a partir de la bibliotheque et le mettre en boucle dans "syn:"Mais je vo


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.