Page 1 sur 1
[R] Transparence d'une couleur d'une image
Posté : ven. 30 janv. 2015 20:55
par Jeco
Bonjour j'ai un code qui se résume à
Code : Tout sélectionner
création d'une gui normal
création d'une image bitmap hétérogène grâce a guictrlcreatepic()
et je voudrais que une couleur spécifique dont le code est 0x000000 ( c'est du noir ) devienne transparente
J'ai pas mal cherché mais je n'ai rien trouvé qui s'applique qu'a une image ou qui soit tellement compliquer à utiliser que je n'ai jamais réussi (comme "_WinAPI_TransparentBlt()")
J'espère que c'était clair à comprendre et merci d'avance

Re: [..] Transparence d'une couleur d'une image
Posté : ven. 30 janv. 2015 21:50
par jguinch
est-ce que tu as possibilité de mettre l'image en PNG avec de la transparence ? (ça sera le plus simple je pense)
Re: [..] Transparence d'une couleur d'une image
Posté : sam. 31 janv. 2015 08:41
par Jeco
Oui normalement je peux la mettre en png pk ?
Re: [..] Transparence d'une couleur d'une image
Posté : sam. 31 janv. 2015 11:23
par walkson
Bonjour,
jguinch a du oublier que GUICtrlCreatePic() ne gère pas les PNG. Par contre on peut utiliser un GIF
Avec un exemple peut être plus parlant avec _WinAPI_TransparentBlt()...
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WinAPIGdi.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
Local Const $iW = 200, $iH = 200
Local $hBitmap = _WinAPI_LoadImage(0, @ProgramFilesDir & '\AutoIt3\Examples\Helpfile\Extras\Hatch.bmp', $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE)
Local $hGUI1 = GUICreate("", $iW , $iH , -1, -1)
GUISetBkColor(0xFFFFE1)
Local $pic = GUICtrlCreatePic("" , 0,0, $iW , $iH )
$hpic = GUICtrlGetHandle($pic)
GUISetState(@SW_SHOW)
ToolTip("en attente",300,300)
$hDC = _WinAPI_GetDC($hPic)
$hDestDC = _WinAPI_CreateCompatibleDC($hDC)
_WinAPI_SelectObject($hDestDC, $hBitmap)
_WinAPI_TransparentBlt($hDC, 0, 0, 100, 100, $hDestDC, 0, 0, 100, 100, 0x646664)
Sleep(3000)
_WinAPI_RedrawWindow($hGUI1)
_WinAPI_TransparentBlt($hDC, 0, 0, 100, 100, $hDestDC, 0, 0, 100, 100, 0xA4A2A4)
Sleep(3000)
_WinAPI_RedrawWindow($hGUI1)
_WinAPI_BitBlt($hDC, 0, 0, 100, 100, $hDestDC, 0, 0,$SRCCOPY)
ToolTip("")
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
_WinAPI_DeleteDC($hDestDC)
_WinAPI_ReleaseDC($hPic, $hDC)
_WinAPI_DeleteObject($hBitmap)
GUIDelete($hGUI1)
EndFunc ;==>Example
Re: [..] Transparence d'une couleur d'une image
Posté : sam. 31 janv. 2015 12:45
par Jeco
En recherchant pour afficher un png j'ai trouvé mon bonheur avec
http://www.autoitscript.fr/forum/viewto ... f=3&t=8122
Merci quand même
