Crée un handle sur un HBitmap à partir d'un objet bitmap GDI+
#include <GDIPlus.au3>
_GDIPlus_BitmapCreateHBITMAPFromBitmap ( $hBitmap [, $iARGB = 0xFF000000] )
$hBitmap | Handle de l'objet bitmap GDI+ |
$iARGB | [optionnel] Couleur de fond de l'objet bitmap |
Succès: | Retourne le handle du HBITMAP (bitmap GDI) |
Échec: | Retourne 0 et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
Vous êtes responsable de la suppression du bitmap GDI et de la palette GDI mais vous ne devez pas les supprimer tant que le bitmap GDI+ n'est pas détruit. Ne passez pas à cette fonction GDI+ un bitmap GDI ou une palette GDI qui est actuellement sélectionné dans un contexte de périphérique.
Lorsque vous en avez terminé avec l'objet bitmap, appelez la fonction _WinAPI_DeleteObject pour libérer les ressources
Consultez GdipCreateHBITMAPFromBitmap dans la Librairie MSDN.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <ScreenCapture.au3> #include <WinAPIHObj.au3> Example() Func Example() Local $hBMP, $hImage, $iX, $iY, $hClone ; Initialise la bibliothèque GDI+ _GDIPlus_Startup() ; Capture un bitmap 32 bits $hBMP = _ScreenCapture_Capture("") $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBMP) ; Crée un clone 24 bits $iX = _GDIPlus_ImageGetWidth($hImage) $iY = _GDIPlus_ImageGetHeight($hImage) $hClone = _GDIPlus_BitmapCloneArea($hImage, 0, 0, $iX, $iY, $GDIP_PXF24RGB) ; Enregistre le bitmap dans un fichier _GDIPlus_ImageSaveToFile($hClone, @TempDir & "\GDIPlus_Image.bmp") ; Nettoie les ressources _GDIPlus_BitmapDispose($hClone) _GDIPlus_BitmapDispose($hImage) _WinAPI_DeleteObject($hBMP) ; Charge l'image $hImage = _GDIPlus_ImageLoadFromFile(@TempDir & "\GDIPlus_Image.bmp") $hBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) ; Enregistre le bitmap dans un fichier _ScreenCapture_SaveImage(@TempDir & "\Image.bmp", $hBMP, True) ; True - > détruit $hBMP ; Nettoie les ressources _GDIPlus_ImageDispose($hImage) ; Arrête la bibliothèque GDI + _GDIPlus_Shutdown() EndFunc ;==>Example