Crée un objet Effect qui agit selon une table donnée de couleurs (LookUpTable)
#include <GDIPlus.au3>
_GDIPlus_EffectCreateColorLUT ( $aColorLUT )
$aColorLUT | Un tableau [256][4] représentant une table de correspondance des couleurs pour les canaux alpha, rouge, vert et bleu : [0][0] - la première valeur de réglage pour le canal alpha [0][1] - la première valeur de réglage pour le canal rouge [0][2] - première valeur de réglage pour le canal vert [0][3] - première valeur de réglage pour le canal bleu [1][0] - deuxième valeur de réglage pour le canal alpha [1][1] - deuxième valeur de réglage pour le canal rouge [1][2] - deuxième valeur de réglage pour le canal vert [1][3] - deuxième valeur de réglage pour le canal bleu ... [255][0] - dernière valeur de réglage pour le canal alpha [255][1] - dernière valeur de réglage pour le canal rouge [255][2] - la dernière valeur de réglage pour le canal vert [255] [3] - dernière valeur de réglage pour le canal bleu |
Succès: | Retpurne le handle de l'objet Effect. |
Échec: | Retourne 0 et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
@error: | -1 - GDIPlus.dll ne supporte pas cette fonction. 10 - Paramètre non valide. |
La table de correspondance spécifie comment les valeurs existantes des canaux de couleur doivent être remplacées par de nouvelles valeurs.
La valeur du canal j est remplacée par la j-ième entrée dans la table de correspondance pour ce canal.
Par exemple, une valeur existante du canal bleu de 25 serait remplacé par la valeur de $aColorLUT[25][3].
Lorsque vous en avez terminé avec l'objet Effect, appelez _GDIPlus_EffectDispose() pour libérer les ressources.
_GDIPlus_EffectCreate, _GDIPlus_EffectDispose
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> _Example() Func _Example() If Not _GDIPlus_Startup() Then MsgBox($MB_SYSTEMMODAL, "ERROR", "GDIPlus.dll v1.1 not available") Return EndIf Local $sFile = FileOpenDialog("Sélectionnez une image", "", "Images (*.bmp;*.png;*.jpg;*.gif;*.tif)") If @error Or Not FileExists($sFile) Then Return Local $hImage = _GDIPlus_ImageLoadFromFile($sFile) Local $iWidth = 600 Local $iHeight = _GDIPlus_ImageGetHeight($hImage) * 600 / _GDIPlus_ImageGetWidth($hImage) Local $hGui = GUICreate("GDI+ v1.1", $iWidth, $iHeight) Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) GUISetState(@SW_SHOW) Local $aColorLUT[256][4] For $i = 0 To 255 $aColorLUT[$i][0] = $i $aColorLUT[$i][1] = 0 $aColorLUT[$i][2] = 0 $aColorLUT[$i][3] = $i Next Local $hEffect = _GDIPlus_EffectCreateColorLUT($aColorLUT) _GDIPlus_BitmapApplyEffect($hImage, $hEffect) _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iWidth, $iHeight) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE _GDIPlus_EffectDispose($hEffect) _GDIPlus_ImageDispose($hImage) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_Shutdown() EndFunc ;==>_Example