JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
13 sept. 2007 à 19:00
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 2022
-
16 sept. 2007 à 22:12
Bonsoir,
J'ai un soucis de transparence, voila le bazar :
Je pose une TImage, je vais peindre dessus grace au .Canvas
Je pose un TImageList. Elle contient une image 25x25, représentant un lapin ( super hein !) et il est entouré de clFushia. Cette couleur est donc une couleur de transparence.
Si je l'ouvre dans un TImage avec Transparent := True; nous n'auront que le lapin et pas de clFushia.
Mais avec Image1.Canvas.Draw(0,0,fBmp); mon lapin apparait entouré de blanc.
Pourquoi ? Et comment y remédier ? Merc
voila un bout de code rapide :
Procedure TForm1.MyRabbit;
var
fBmp: TBitmap;
begin
fBmp := TBitmap.Create;
ImageList1.GetBitmap(0,fBmp);
Image1.Canvas.Draw(0,0,fBmp);
fBmp.Free;
end;
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 14 sept. 2007 à 00:37
moi je me prend plus la tete avec les bitmaps transparent qui, ne sont carrement pas prevus pour cela, et même si il en sont pourvus, ça marche tellement mal et le rendus est tellement pourris digne des 70's que c'est même pas la peine de l'utiliser.
vas voir ma source MasterMind, j'y utilise massivement les PNG, c'est beau, rapide, pas prise de tete et surtout, Draw prend bien la transparence du PNG (directement sur le canvas sans passer par un buffer bitmap intermediaire).
voila, quand on veut enfoncer un clou, même si un manche de tournevis ou un manche de clef plate peut faire l'affaire, un marteau c'est quand même 100 fois mieux.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 13 sept. 2007 à 21:51
tu voulais dire :
...
fBmp.Transparent := Image1.Picture.Bitmap.TransparentColor;
...
?
ça marche pas de toute façon :/ là, j'ai plus rien qui s'affiche dans mon TImgage, qu'il soit en Transparent := true ou false;
En meme temps, si je fais "fBmp.Transparent := Image1.Picture.Bitmap.TransparentColor;" euh ... image1 étant vide puisque il est juste posé sur la fiche, le fBmp.transparentcolor n'obtiendra rien, non ?
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 13 sept. 2007 à 22:06
ça, ça marche :
procedure TForm1.Button1Click(Sender: TObject);
var
fBmp: TBitmap;
begin
fBmp := TBitmap.Create;
try
fBmp.TransparentMode := tmFixed;
fBmp.TransparentColor := clFuchsia;
ImageList1.GetBitmap(0,fBmp);
Image1.Canvas.Draw(0,0,fBmp);
finally
fBmp.Free;
end
MAIS (car ya un mais) avant de mettre ce lapin dans mon TImage, mon timage contient un fond (une autre bitmap), je voulais donc mettre mon lapin sur ce fond (de l'herbe evidemment :p) mais en transparent. La ce quiarrive si je mets un fond d'un bitmap d'herbe c'est qu'il remplace mon herbe par un lapin au fond transparent :''( sniff, je suis proche !
Vous n’avez pas trouvé la réponse que vous recherchez ?
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 14 sept. 2007 à 21:14
Pose 2 TImage, dans la premiere, rempli la propriété PICTURE avec une bitmap contenant du jaune pur (255-255-0) soit clYellow (ou change mon exemple toi meme)
puis voila le bout de code:
TransparentBlt(image2.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, Image1.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, clYellow);
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 15 sept. 2007 à 23:57
@cirec
Ouf je m'en suis sorti (Install de TeeChartPro.. avec ReportBuilder..)
Pour revenir à TramsparentBlt, je ne vois pas de transparence.
Il y a un truc qui m'échappe..