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

Signaler
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
madbob
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012
-
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

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

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

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

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
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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

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

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

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
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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

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

"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

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
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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