Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1516 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  effacement image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

effacement image

n°1919751
ravaner
Posté le 31-08-2009 à 09:04:37  profilanswer
 

Bonjour à tous. J'utilise Borland CBuilder6 dans des applis graphiques. Pour effacer une image j'utilise la méthode classique de la création d'un rectangle plein noir. Ce procédé crée un blinking assez désagréable, j'aimerais connaître une méthode plus astucieuse permettant de passer d'une image à une autre sans cette "saute" visuelle.

mood
Publicité
Posté le 31-08-2009 à 09:04:37  profilanswer
 

n°1919816
olivthill
Posté le 31-08-2009 à 11:45:58  profilanswer
 

Si on pouvait voir un petit bout de code, cela nous aiderait pour vous aider.
 
Je suppose que pour afficher une image, vous devez faire un BitBlt, ou quelque chose d'équivalent. Or cette fonction a des options qui permettent d'indiquer si on veut faire un ou booléen ou un et booléen ou d'autres opérations booléennes entre les pixels de l'image précédente et les pixels de la nouvelle image. Il suffirait de prend l'option qui permet d'afficher la nouvelle image sans prendre en compte les pixels de l'ancienne image. Théoriquement, c'est l'option par défaut. C'est pour cela que je ne comprends pas bien l'utilité du rectangle noir.
 
Si la nouvelle image est plus petite que l'ancienne image, il peut y avoir des parties de l'ancienne image qui débordent, et dans ce cas, il faut les effacer en affichant un rectange à la place de ces parties. Il doit être possible de connaitre les dimensions des deux images, et de calculer la taille exacte des parties qui débordent, et donc de ne peindre qu'un ou deux rectangles pour couvrir ces parties.

n°1919830
ravaner
Posté le 31-08-2009 à 12:25:54  profilanswer
 

Merci pr votre réponse. J'utilise en fait des fonctions du type LineTo (x,y) ....

n°1919849
olivthill
Posté le 31-08-2009 à 13:34:11  profilanswer
 

Alors deux solutions :
 
1. Faire les LineTo dans un bitmap en mémoire, et copier ce bitmap sur l'écran par un BitBlt. C'est un chouia compliqué quand on ne l'a jamais fait et qu'on n'a pas d'exemple car il faut créer le bitmap en mémoire et le libérer à la fin, et avant de créer ce bitmap, il faut se créer un display context en mémoire, et le libérer à la fin.
 
2. Au lieu de peindre un rectangle noir, peindre juste une ligne noire sur chaque ligne peinte précédemment.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  effacement image

 

Sujets relatifs
[XSLT] Intégrer une image SVG créée dynamiquementImage par dessus un applet flash
"aplatir" une image en PHP GDtexte arabe sur une image en php
survol image et changement d'imageImage "renversée" avec GD.
Récupérer largeur et hauteur d'une image (movieclip)[PHP]Insertion d'une image dans SQL Serveur
[REGLER] image qui apparait au survol du lien, puis une autreimage qui suit la barre de défilement
Plus de sujets relatifs à : effacement image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR