begin process at 2008 08 20 05:10:20
1 228 667 membres
47 nouveaux aujourd'hui
14 254 membres club

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 !

DÉFORMATION D'IMAGE BITMAP EN AS


Information sur la source



Description

Le code est simple, mais demande pas mal de ressource (tout dépend de votre gourmandise en fait). Lorsqu'on déplace les coins de l'images, celle-ci est analysée (BitmapData.getPixel) et reproduite en déformant les pixels (le code refait chaque pixel un par un).

Le résultat est vraiment sympa. Dans cette exemple, 1 coin bouge aléatoirement, les 3 autres tournent sur eux mêmes. Au bout d'un tour, toutes les images calculées depuis le début sont affichées les unes à la suite des autres (histoire d'avoir une petite animation sympa). Par contre, en raison du cacheAsBitmap, il faudra attendre 1 tour complet (une fois les images calculées, donc 2 tours au total) pour avoir une animation fluide.

Il est possible de modifier certains paramètres, comme la précision. PrecX et PrecY sont les variables responsables de la précision.
PrecX représente "le nombre de pixel utilisé pour reproduire l'image, sur l'axe des X (horizontale)".
PrecY représente "le nombre de pixel utilisé pour reproduire l'image, sur l'axe des Y (verticale)".
Donc plus PrecX (respectivement PrecY) est proche de la largeur (de la hauteur) de l'image, plus le résultat sera fidèle à l'original, mais plus le temps de calculs sera long.

Dans l'exemple, j'ai mis une précision globale à 0.5 (ça veut dire qu'on calcul un pixel sur 2 seulement).

J'ai mis initié parce que c'est pas assez facile pour un débutant. Il faut quand même commencé à comprendre un code AS sans avoir à se servir de l'aide ;)

L'image est libre de droit :)

Conclusion

Bon, il y a quelques problèmes, déjà pour le moment, les coins doivent rester dans leur position relative (je ne sais pas si je ferai une mise à jour ou non). C'est à dire que le coin en haut à gauche doit rester grosso modo en haut à gauche (sinon ça fait une boucle for infini ! Paf !). C'est pas trop difficile à changer, malheureusement je suis pressé et je ne peut pas le faire maintenant, je le ferais dès que j'aurai du temps libre je pense.

Je ne sais pas si je ferai la mise à jour sur ce site, donc si vous êtes intéressé, venez sur http://lfabreges.free.fr/slagt (choisissez HTML ou Flash pour le type d'affichage du site, puis cliquez sur "Deformation"). Par contre, étant donné que je n'ai pas beaucoup de temps, la source n'y sera pas avant quelques heures (voire jour, je ne sais pas), donc la mise à jour pas avant quelques jours je pense, s'il y en a une. Bon promis, si j'y pense, je ferai aussi la mise à jour ici ;)
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

  • signaler à un administrateur
    Commentaire de Slagt le 10/11/2006 16:28:10

    N'hésitez pas à noter, et surtout à commenter :)

  • signaler à un administrateur
    Commentaire de scara 51 le 13/11/2006 12:43:00

    Petit commentaire rapide. Le code est un peu illisible et j'ai pas pris le temps de tout refaire sur une feuille.

    Donc je vais juste analyser le résultat :
    La qualité est médiocre, alors que l'utilisation des bitmapData permet normalement un très bon lissage. Pourquoi des pixels aussi gros sur le résultat final ?
    Les performances ne sont pas au rendez-vous. Je ne sais pas ce qui alourdit l'anim, mais ça l'alourdit. Tu sais d'où ça vient ?

  • signaler à un administrateur
    Commentaire de Slagt le 16/11/2006 23:40:11

    Ho oui, il s'agit de la méthode de traitement :)

    Je parcours l'image pixel par pixel, je récupère la valeur de la couleur, je calcul la forme du pixel correspondant (il n'est plus carré), et je le dessine. Donc ça prend beaucoup de ressource. C'est... amusant à coder, mais pas à utiliser je le reconnait.

  • signaler à un administrateur
    Commentaire de scara 51 le 16/11/2006 23:46:09

    Bon une tite solution pour optimiser tt ça : diviser l'image en 2 triangles rectangles et appliquer à chaque une torsion. Tout ca bien sûr en bitmap. Ca permet de déformer l'image sans qu'il y ait parallélisme car on sépare en 2 l'image.

    Et là la qualité comme la vitesse suivent.

    Je ne sais pas si je suis clair. Sinon je peux réexpliquer

  • signaler à un administrateur
    Commentaire de Slagt le 17/11/2006 16:15:51

    une torsion ?

  • signaler à un administrateur
    Commentaire de scara 51 le 17/11/2006 17:57:53

    Au chapitre martix de l'aide de flash, recherches les infos sur "Inclinaison ou cisaillement".

  • signaler à un administrateur
    Commentaire de Slagt le 18/11/2006 23:07:38

    En effet, ça à l'air fort pratique. Mais de la à le généraliser pour sortir l'image en fonction de la position des 4 coins, c'est tout de suite beaucoup plus dur non ?

    A chercher...

    Merci pour l'info, je n'ai pas l'habitude de me servir des matrices, et c'est vrai que leurs capacités d'action sont assez étendues.

  • signaler à un administrateur
    Commentaire de scara 51 le 19/11/2006 23:18:47

    C pour ca que je dis de couper l'image en 2 images ! La découpe se fait au nv des diagonales.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS