Negation d'une image bitmap (flash 8 beta)

Soyez le premier à donner votre avis sur cette source.

Vue 15 476 fois - Téléchargée 984 fois

Description

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 / Exemple :


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).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

softghost
Messages postés
61
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
13 avril 2010
-
Bonjour,
en parlant de flash et de la fonction bitmap. j'aimerais bien capturer une image a partir d'une cam j'utilise ,

Camera.get();

bonne journée.
manoloz
Messages postés
26
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
27 septembre 2006
-
Flash qui gère les pixels??
trop fort, il va y'avoir de la concurrence avec after effects!
kingcobra
Messages postés
316
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
19 septembre 2012
-
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 ;) .
Prouprou_Sensei
Messages postés
517
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
24 octobre 2006
-
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.
cs_goldenboy68
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1 -
...ç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?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.