Get et setdibits

Soyez le premier à donner votre avis sur cette source.

Vue 8 636 fois - Téléchargée 661 fois

Description

Pour question sur le forum. Cette source charge un Bitmap sur la fenêtre (l'image n'est pas redimentionné si elle est trop grande), en cliquant sur modifier, elle récupère les données de l'image dans un buffer grâce à GetDIBits, modifie les couleurs et réaffiche à l'écran l'image modifié grâce à SetDIBits.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
En tout cas je te conseil d'eviter les optimisations de ce genre, à savoir itérer à rebourd et faire x*2 + x au lieu de x*3, car au mieux le gain est presque invisible, au pir tu empeches le compilateur de faire de vrais optimisations et dans tout les cas ca rend le code moins lisible.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Mais ce n'est qu'un simple exemple. Bien sûr que j'aurais pu modifier tel et tel pixel sans avoir recour à une boucle (ou une mais petite). Ce que je voulais faire, c'est une simple manipulation dans le buffer (ici changer les couleurs de chaque pixels) tout en montrant le calcule pour trouver une position x et y dans le buffer. Non ce n'est pas ce qu'il y a de plus optimisé mais je voulais montrer cette fonctionnalité le plus simplement possible.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oui, mais ce n'est pas une raison pour le faire dans un boucle.
Je suis pss du tout ton raisonnement:
-d'une part tu converge vers 0 parce que c'est soit-disant plus rapide (une instruction en moins)
-d'autre part tu ralentis considérablement la boucle en faisant à chaque tour un calcul inutile
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
D'après ce que j'en sais, une lecture séquencielle signifie lire les valeurs dans l'ordre une à la suite de l'autre. C'est évident que cette méthode va beaucoup plus vite que de calculer à chaque tour de boucle la position x et y mais il devien impossible d'optenir une position bien précise en un calcule. Il est toujours intéressent de savoir comment aller à la position x et y de son image à partir du buffer. Ça permet de modifier bien spécifiquement son image.
Messages postés
28
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
10 août 2006

Je crois avoir trouvé... Je ne sais pas si c'est ça, mais "séquentiellement" signifie incrémenter ou décrémenter un pointeur sur le tableau LPBYTE. Dites-moi si j'ai faux.
En tout cas, j'ai testé la méthode séquentielle et ça marche.
Afficher les 35 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.