UDF > GDIPlus > Bitmap >


_GDIPlus_BitmapCreateHBITMAPFromBitmap

Crée un handle sur un HBitmap à partir d'un objet bitmap GDI+

#include <GDIPlus.au3>
_GDIPlus_BitmapCreateHBITMAPFromBitmap ( $hBitmap [, $iARGB = 0xFF000000] )

Paramètres

$hBitmap Handle de l'objet bitmap GDI+
$iARGB [optionnel] Couleur de fond de l'objet bitmap

Valeur de retour

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*).

Remarques

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

En relation

_WinAPI_DeleteObject

Voir aussi

Consultez GdipCreateHBITMAPFromBitmap dans la Librairie MSDN.

Exemple

#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