Cela fait maintenant une semaine que je suis dessus et je pète un cableje me dis que comme le malade va voir un médecin je trouverais peut-être enfin la solution si je poste le problème
![]()
J'ai un Bitmap avec une couche transparente , quand je veux copier celui-ci dans un autre Bitmap 'virtuel' je voudrait que la transparence soit transformée en une couleur disons par exemple le blanc .
Pour les plus calés , l'objectif est de supprimer le canal Alpha
mes tentatives :
Avant de tenter une manipulation plus "lourde" (changement pixel par pixel) quelqu'un aurait-il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 ABitMap:=TBitmap.Create; try ABitmap.Height:=FImage.Bitmap.Height; ABitmap.Width:=FImage.Bitmap.Width; // ABitmap.PixelsFormat:=pf24bit; // ici j'ai tenté de d'abord remplir l'image à blanc ------ résultat néant // ABitmap.Canvas.Brush.Color:=clwhite; // ABitmap.Canvas.FillRect(0,0,ABitmap.Width,ABitmap.Height); // --------------------------------------------------------------------------------- // déclaration de blanc comme transparent avant // ABitmap.Transparent:=True; // ABitmap.TransparentColor:=clWhite; //---------------------------------------------------------------------------------- // Copie de l'image initiale par Streaming memstream := TMemoryStream.create; try FImage.Bitmap.Transparent:=False; FImage.Bitmap.SaveToStream(memstream); memstream.position := 0; ABitmap.LoadFromStream(memstream); finally memstream.free; end; //------------------------------------------------------------------------------------ // ou par Assign // ABitmap.Assign(Fimage.Bitmap); //------------------------------------------------------------------------------------ // ABitmap.PixelsFormat:=pf24bit; ABitmap.SaveToFile('Copie.Bmp'); // vérification résultat
Partager