DÉFORMER UNE IMAGE, FAIRE DES VAGUES (SIN) (UPDATED)

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 15 janv. 2005 à 09:11
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012 - 16 janv. 2005 à 10:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28861-deformer-une-image-faire-des-vagues-sin-updated

madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
16 janv. 2005 à 10:54
:) ennixo : Je trouve ta reflexion très pertinente surtout pour les nons matheux (div par 0), ce qui conduirait à une erreur pas forcément facile à comprendre. Il suffit de saisir une période nulle pour y parvenir... Or, le cas des images s'y prete car les bornes des boucles sont souvent importantes.

L'esthétique en terme de compression algorythmique n'est pas une nécessairrement une recherche de performence en terme d'exécution. Par contre c'en est une en cas de contrainte matériel forte comme les ressources mémoires physiques disponibles.
ennixo Messages postés 224 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 17 juin 2006
16 janv. 2005 à 00:20
si je peux me permettre, tu peux optimiser encore ton code en remplaçant les IIf à l'intérieur de la boucle par des If à l'extérieur de la boucle. tu aurais plus de code (3 fois le code de la boucle sans les IIf) mais ça n'évaluerais qu'une seule fois Deforme_X et Deforme_Y, il y aurait donc beaucoup moins d'instructions effectuées.

de plus, meme si IIf est parfois un raccourci il ne faut pas oublier qu'il évalue les 2 possibilités à chaque fois... ça signifie que quand tu lui dis ça :
aX = IIf(Deforme_X, Sin(Y / PeriodeX) * AmplitudeX + AmplitudeX, 0)
meme si Deforme_X est faux, il va te retourner 0 mais il va quand meme faire le calcul Sin(Y / PeriodeX) * AmplitudeX + AmplitudeX

=)
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
15 janv. 2005 à 22:52
max12 c'est une bonne chose que tu retrousses un peu tes manches :-))).
Moi je me garde la librairie de DarkSidious comme cerise sur le gateau pour lundi j'espère, si j'ai fini le nouveau prog que je veux mettre en ligne...
Dans le kaleidoscope (en ligne sur ce site) j'utilise quelques API dont getbitmapbits et setbitmapbits pour obtenir et manipuler les tableaux des bmp 32bits et mon OS c'est XP et ça fonctionne trés bien ?!?.

A+ pour de nouvelles aventures alors...
madbob
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
15 janv. 2005 à 22:34
J'ai regarder ta source, intéressant elle semble bien remplir ses promesses. C'est une bonne chose que tu l'es spécifier dans les commentaires. Surtout pour ceux qui ont l'intention de créer un programme de retouche d'image.

@+
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 janv. 2005 à 20:38
Ma classe permet d'accèlérer le traitement graphique : environ 35 fois plus rapides que les fonctions VB, et 30 fois plus rapide que les API GetPixel/SetPixel classiques !

Il s'agit d'une classe écrit en VB et qui se base sur les tableaux de bits récupèrés avec la fonctions de l'API GetDIBits, ensuite, tout les traitements se font sur le tableau, et non sur l'image, d'où un gain en rapidité !

Elle est sur ce site, tu pourras la trouver facilement dans mes sources.

DarK Sidious
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
15 janv. 2005 à 20:02
Je pensais que les seuls commentaires que j'aurais ce serais concernant la petite blague du simplement, je crois que je vais l'améliorer un peut et trouver autre chose.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
15 janv. 2005 à 19:59
Merci, jamais j'aurais penser que ce code suciterais le moindre intérêt. Sinon je connais la méthode des API mais ça fonctionne pas, pourtant avant je le faisais et ça fonctionnait. C'est peut-être dû à Windows XP ou un truc que j'oublie toujours. Sinon qu'est-ce qu'elle fait plus exactement ta classe Darksidious ? (Si elle est sur le site je vais voir après avoir taper ce commentaire et avoir pris une douche :P)

@+
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
15 janv. 2005 à 12:07
Dark Sidious: C'est du code trés compressé alors ;-)))...
Je plaisante bien sûr, car je suis très sensible à ton soutien à la foi spontané et confiant dans mes aptitudes.
A bientôt
madbob
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 janv. 2005 à 11:42
madbob : je reste à ta disposition pour t'expliquer comment utiliser ma classe, mais je pense qu'avec les commentaires que j'ai pu y mettre, tu n'auras pas trop de mal à comprendre son fonctionnement ;)

DarK Sidious
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
15 janv. 2005 à 11:33
salut et merci, grâce à toi j'ai encore appris quelque chose !

C'est tout con et ça met en evidence un aspect des propriétés des objets pictures que je connaissai pas et comme je m'y interresse :-)

Je t'aurai mis 10 mais j'enlève 1 car rien n'est totalement intuitif dans une interface et encore 1, car un commentaire n'est jamais de trop. Hors bien souvent plus le code est compressé plus le commentaire est util.

Donc 8 au grooooooooos fénéant :-))) qui mérite tout à fait un poil d'encouragement

Amicalement
madbob

Ps : je vais très certainnement m'intéresser à ta classe de gestion d'image Darksidious dèsque j'aurai un peu de temps libre
fg85 Messages postés 370 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 13 avril 2007
15 janv. 2005 à 10:41
"8/10 pour l'idée originale et à cause de ces quelques remarques ;)" comme DarK Sidious !! +1.

------------------------------
http://fg.logiciel.free.fr
ennixo Messages postés 224 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 17 juin 2006
15 janv. 2005 à 09:51
pas mal, il manque juste un anticrénelage qui, je pense mettra fin au moirage étrange provoqué par ta déformation.

cependant 8/10 aussi =)
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 janv. 2005 à 09:11
Ouais, c'est assez original, fallait y penser.

Dommage que tu utilise les fonctions VB pour faire ton tracé car elles sont très lentes : sur une image plus grande, il vaut mieux utiliser les fonctions de l'API, ou ma classe de gestion d'image pour avoir bien plus de rapidité.

Tu aurais également pu mettre ton code directement sur le site sans devoir télécharger le zip car il est vraiment court.

8/10 pour l'idée originale et à cause de ces quelques remarques ;)

DarK Sidious
Rejoignez-nous