Modifie la luminance d'une valeur RGB
#include <WinAPIGdi.au3>
_WinAPI_ColorAdjustLuma ( $iRGB, $iPercent [, $bScale = True] )
$iRGB | La valeur RGB initiale. |
$iPercent | La luminance de la plage totale, en pour cent, ou luminance absolue. |
$bScale | [optionnel] Spécifie comment utiliser le paramètre $iPercent, les valeurs valides sont: True - $iPercent spécifie de combien augmenter ou diminuer la luminance actuelle, $iPercent peut varier de -1000 à 1000. False - $iPercent spécifie la luminance absolue, $iPercent peut varier de 0 à 1000. Les valeurs de luminance disponibles vont de 0 à un maximum. Si la valeur demandée est négative ou dépasse la valeur maximale, la luminance sera mise à zéro ou à la valeur maximale, respectivement. La valeur par défaut est True. |
Retourne la valeur RGB modifiée.
Consultez ColorAdjustLuma dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <SliderConstants.au3> #include <StaticConstants.au3> #include <WinAPIGdi.au3> #include <WindowsConstants.au3> Opt('TrayAutoPause', 0) ; Crée une GUI Global $g_hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 300, 327) GUISetBkColor(0x808080) Global $g_idGraphic = GUICtrlCreateGraphic(0, 0, 150, 300) GUICtrlSetBkColor(-1, 0x808080) GUICtrlCreateLabel('', 0, 300, 303, 2, $SS_ETCHEDHORZ) Global $g_idLabel = GUICtrlCreateLabel('0%', 30, 132, 90, 37, $SS_CENTER) GUICtrlSetFont(-1, 24, 800, 0, 'Arial') GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetColor(-1, 0xFFFFFF) Global $g_idSlider = GUICtrlCreateSlider(0, 302, 300, 25, BitOR($TBS_BOTH, $TBS_NOTICKS)) Global $g_hSlider = GUICtrlGetHandle(-1) GUICtrlSetLimit(-1, 50, -50) GUICtrlSetData(-1, 0) ; Inscrit le message WM_HSCROLL pour un défilement en direct et affiche la GUI GUIRegisterMsg($WM_HSCROLL, 'WM_HSCROLL') GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE Func WM_HSCROLL($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $wParam Local $iPercent If $hWnd = $g_hForm Then If $lParam = $g_hSlider Then $iPercent = GUICtrlRead($g_idSlider) GUICtrlSetBkColor($g_idGraphic, _WinAPI_ColorAdjustLuma(0x808080, $iPercent)) GUICtrlSetData($g_idLabel, $iPercent & '%') EndIf EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_HSCROLL