Fxmeister - revolution de la retouche d'image sur vbfrance

5/5 (11 avis)

Vue 6 664 fois - Téléchargée 1 156 fois

Description

Ce logiciel est un logiciel de retouche graphique... mais différent de ceux déjà présents sur VBFrance, en effet celui ci utilise des APIs différentes permettant de décupler la rapidité des filtres graphiques. De plus il implémente de nouveaux effets (convolution, dégradé...), son but est toutefois principalement éducatif...

Son but principal est de vous montrer comment utiliser les API GetDIBits et SetDIBits pour créer des effets graphiques. Sur VBFrance, tous les effets graphiques sont réalisés à l'aide des fonctions GetPixel et SetPixel, qui sont particulièrement lentes. Ce programme vous montre donc comment réaliser des effets graphiques rapides et efficaces. Les effets Contraste, Saturation, Noir et Blanc, Diffusion, Derrière une vitre, Inverser les couleurs, sont là dans un but éducatif, pour vous montrer comment utiliser ces APIs.

Le logiciel montre ensuite comment faire des effets par produit de convolution. Le principe est expliqué dans le code, cela permet de faire à peut près tous les effets de base proposés par PaintShop, comme le flou, le Sharpen, le traçage de contour, la mise en relief, et bien d'autres encore, il suffit de connaitre leur matrice de convolution. Le logiciel propose quelques matrices de convolution basiques, vous pouvez en trouver d'autres sur internet.

J'ai aussi implémenté un effet de dégradé assez complet, bien qu'il subsiste encore un bug (pas grand chose, il est noté dans le code mais l'algorithme en lui même ne contient aucun bug), le logiciel est fournit avec quelques dégradés de base, vous pouvez aussi créer les votres.

Le logiciel montre enfin comment utiliser correctement la fonction StretchBlt (dans le code j'utilise setDIBits mais ça revient au même), IL FAUT faire un appel à setStretchBltMode avant l'appel, sinon le rendu est particulièrement moche pour des redimensionnements importants. l'appel de ces deux fonctions remplace avec brio la fonction PaintPicture de VB (que je ne recommande pas d'utiliser... particulièrement lente)

Le logiciel n'implémente pas d'autres effets graphiques volontairement, les autres sont en grande partie déjà présent sur VBFrance et sur Internet et je vous laisse le soin de les ajouter grace aux APIs SetDIBits et GetDIBits.

Pour toute suggestion ou question, vous pouvez me contacter à l'adresse polo18623@hotmail.com ou directement sur VBFrance.

J'espere que ce code pourra vous aider...
Progmeister

Source / Exemple :


Public Sub AllisintheZip(filename as String)
  Dezip(filename)
End Sub

Conclusion :


Le zip ne contient pas de .exe mais je vous conseil de le compiler pour apprécier
sa vitesse.

Merci de laisser vos commentaires...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
31 juil. 2016 à 21:37
Par ce que cette source date de 2005.
Ahhhhh pourquoi VB6 ? Quelle horreur.. Rrrrrrr
mobilotek Messages postés 37 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 3 décembre 2007
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
Afficher les 11 commentaires

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.