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...
31 juil. 2016 à 21:37
31 juil. 2016 à 21:23
4 janv. 2006 à 11:54
29 juin 2005 à 12:28
30 mars 2005 à 19:23
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
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.