CopyRect

Résolu
Signaler
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
-
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
-
Bonjour à tout le monde ,

ben voila , j'ai une colle :

J'utilise CopyRect pour coller une partie d'une image(Bitmap) dans un canvas(Form ou n'importe quoi avec un canvas, c'est pr l'exemple) ,

Mais le problème c'est que copyRect oublie ma couleur de transparence de mon Bitmap !
Je fais :
Bitmap.TransparentColor := MY_TRANSPARENT_COLOR ;
Bitmap.Transparent:=True;

puis je réalise le CopyRect
Form.Canvas.CopyRect(Dest , Bitmap.Canvas , Src ) ;
et la , malheur pas de couleur de transparence
(En faisant un Form.Canvas.draw(0,0,Bitmap) la couleur de transparence marche très bien ...

J'ai bien essayer avec <> valeurs de CopyMode mais ca n'a rien changer ! à part foutre un merdier totale d'ailleurs je pige pas à quoi ca peux bien servir de s'amuser à changer les couleurs etc etc ...

CopyRect ne gère pas la transparence lors du "copiage" d'un canvas à un autre , ou faut-il passer à autre chose
(ca serait dommage parce que je la trouve plus qu'utile cette petite fonction )

Il y a t il une solution à ce problème ?

Merci

Nico 

11 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,

as tu essayé avec TransparentBlt

 
@+
Cirec

<hr siz="" />
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
En regardant sur le net et DelphiFR, je me rends bien compte que je ne suis pas le seul a avoir ce problème ...
mais il n'y a jamais de réponses convaincantes !
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
j'ai trouvé des réponses à mes recherches (en recherchant BitBlt) , j'ai trouvé 1 exemple demandant ce que je demandait et un autre avec BitBlt

http://delphi.developpez.com/sources/?page=sec_gra_applications

j'ai plus qu'a me démerder avec ca !
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Bon si quelqu'un (re)passe par ici :
Question perf :

est-il plus judicieux de faire 1 tableau dynamique contenant ts mes zones a vouloir dessiner et appelez Draw sur chaque cellule du mon tableau (qui representerait une zone de mon Bitmap)

ou utiliser CopyRect et seulement dessiner la zone en question (sans utiliser de tableau dans ce cas )

Maintenant sachant que la méthode proposée sur Developpez fait au moins 3 appels à copyRect , lesquel des 2 choix est le mieux ???

Je vais tester mais sincerment je n'en sais rien ...

Merci 
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
j'ai retiré réponse accepté parce que j'y arrive pas !

C'est vraiment trop compliqué , enfin dans mon cas ...
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
je ne connaissais pas, je me renseigne sur la fonction et je te dis quoi ...

L'aide de Delphi 7 ne la connais pas ...
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
je ne sais pas si tu as vu : http://support.microsoft.com/kb/300555/fr
Bon je m'en fous j'ai Xp mais quand même ...
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Ca marche nickel , Merci :)
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Ah cari, t'as source est vraiment très intéressante , je n'avais pas beaucoup suivi à l'époque la saga !

Je vais approfondir ts ca (et peut être enfin comprendre ts ce mécanisme ) , ca semble en tout cas très complet

Merci  
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
copyrect a un equivalent : Draw, qui prend en compte la transparence
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Je sais ca !
Mais draw dessine tous le bitmap tandis que CopyRect peut travailler par zone !