FXMEISTER - REVOLUTION DE LA RETOUCHE D'IMAGE SUR VBFRANCE

BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008 - 27 mars 2005 à 21:05
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 31 juil. 2016 à 21:37
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/30364-fxmeister-revolution-de-la-retouche-d-image-sur-vbfrance

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
31 juil. 2016 à 21:37
Par ce que cette source date de 2005.
Ahhhhh pourquoi VB6 ? Quelle horreur.. Rrrrrrr
Utilisateur anonyme
4 janv. 2006 à 11:54
Peut-on m'expliquer en détail chaque parametre de GetDIBits,svp?
jaimelecsharp Messages postés 1 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 29 juin 2005
29 juin 2005 à 12:28
Merci Progmeister pour ce bon code d'utilisation de SetDIBits.
ennixo Messages postés 224 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 17 juin 2006
30 mars 2005 à 19:23
@MoiOlivier:
L'utilisation est Long rend les algos plus rapides car le Long est de 32 bits et nos processeurs (pour la plupart) sont 32 bits et sont donc optimisés pour etre au plus rapide avec ces valeurs ! celà explique pourquoi un long est plus rapide qu'un integer ou meme qu'un byte !!!

@Progmeister:
pas mal mais tu pourrais accélérer en cochant les cases pour optimiser la rapidié comme le dit MoiOlivier et surtout NE PAS UTILISER de progressbar !!! la progressbar il faut la rafraichir à intervals réguliers sinon tu perds énormément de temps !!!

et juste une petite astuce aussi quand tu inverse l'image. le calcul c'est effectivement NouvelleComposanteDeCouleur = 255 - AncienneComposanteDeCouleur

mais il s'agit de byte, donc d'octet et celà revient au même résultat de faire NouvelleComposanteDeCouleur = Not AncienneComposanteDeCouleur

sauf que c'est plus rapide pour le processeur =)

bonne continuation
bidoch78 Messages postés 67 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 2 décembre 2005
29 mars 2005 à 09:41
En tous cas, force est de constater que le code est tres pro : bien commenté, aéré, lisible.
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
28 mars 2005 à 18:16
Salut,
Merci, merci et merci, etc.
J'aime bien.
Vraiment bien.

Juste une (toute petite) chose : pense à cocher toutes les case dans la fenêtre "options avancées" des options de compilation, ça fait gagner pas mal de temps lors du calcul des effets...

Ah oui, toujours pour l'optimisation (et c'est encore un détail) : utilise des Long, toujours des Long, et non des Integer quand tu peux (perso, j'ai remarqué que c'était plus rapide aussi...)

Bonne prog, @+
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
28 mars 2005 à 17:30
Sur toutes ces précieuses précisions, je ne regrette qu'une chose : que tu ai d'autre projet :-(((

;-)

Je trouves cependant que certain de tes effets sont plutot lent! (non, là j'te taquine ;-)
Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 mars 2005
28 mars 2005 à 01:11
Bon les gars je sais bien que je n'ai pas inventé les apis SetDIBits et GetDIBits, c'est d'ailleurs sur VB que j'en ai eu l'idée et d'ailleurs grace à DarkSidious mais:
1 - L'API était mal utilisée, le tableau de Bytes passé en paramètre pour récupéré les pixel était mal dimensionné ce qui le rendait inutilisable pour des filtres plus complexe, et les paramètres de la structure BITMAPINFO étaient mal définis si bien que l'on ne pouvait pas appliquer de filtre sur la plupart des images chargées avec la fonction loadpicture (ou avec les apis pour les puristes)
2 - Je déplore que sur VBFrance, 98% des effets graphiques programmés, aussi bons soient ils, utilisent les fonctions GetPixel et SetPixel (SetPixelV si tu veux, ca ne change pas grand chose ici) qui sont particulièrement lentes...

Voila ma source est donc à but pédagogique, pour faciliter l'utilisation de ces deux fonctions si peu utilisées

De plus cette source était à la base faite pour présenter l'effet de produit de convolution, utilisé par tous les logiciels de retouche d'image

Merci pour tes idées ScSami mais j'ai d'autres projets pour le moment....
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
27 mars 2005 à 21:57
C'est clair, Bozzo a raison. Y'a plein de sources sur VBF concernant Get et Set DIBits (cf. les sources, entre autre, de DarkSidious)!!!

De plus, si tu connais un moyen plus rapide que SetPixel, ben ça ne peut être que SetPixelV qui, je le rappel, n'a pas la précision colorimétrique du premier!

Mais bon, l'intention est bonne.

Cependant, si tu veux vraiment faire un truc inédit sur VBF, fait nous une bonne source pour faire des panoramas (voir même des anaglyphs panoraniques ;-)
Ou alors une source de stéréogrammes.

Bonne prog... meister
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
27 mars 2005 à 21:05
Tu n'as pas inventer l'utilisation des api GetDIBits et SetDIBits dans les logiciels de retouches graphiques...
Rejoignez-nous