CopyRect

Résolu
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 - 21 janv. 2009 à 15:40
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 - 22 janv. 2009 à 22:44
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
21 janv. 2009 à 20:37
Salut,

as tu essayé avec TransparentBlt

 
@+
Cirec

<hr siz="" />
3
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 15:48
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 !
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 16:50
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 !
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 17:34
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 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 19:06
j'ai retiré réponse accepté parce que j'y arrive pas !

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

L'aide de Delphi 7 ne la connais pas ...
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 21:11
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 ...
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
21 janv. 2009 à 21:35
Ca marche nickel , Merci :)
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
22 janv. 2009 à 12:21
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  
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 7
22 janv. 2009 à 21:57
copyrect a un equivalent : Draw, qui prend en compte la transparence
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
22 janv. 2009 à 22:44
Je sais ca !
Mais draw dessine tous le bitmap tandis que CopyRect peut travailler par zone !
0