UDF > GDIPlus > Image >


_GDIPlus_ImageSaveAdd

Ajoute une trame dans un fichier ou un flux donné par un appel précédent à une des fonctions _GDIPlus_ImageSaveToFileEx ou _GDIPlus_ImageSaveToStream

#include <GDIPlus.au3>
_GDIPlus_ImageSaveAdd ( $hImage, $tParams )

Paramètres

$hImage Le handle de l'objet Image.
$tParams Une structure _GDIPlus_ParamInit.

Valeur de retour

Succés: Retourne True.
Échec: Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur GPSTATUS ($GPID_ERR*).

Remarque

Utilisez cette fonction pour sauvegarder des trames données d'une image à trames multiples vers une autre image à trames multiples.

En relation

_GDIPlus_ImageSaveAddImage, _GDIPlus_ParamInit, _GDIPlus_ParamAdd, _GDIPlus_ImageSaveToFileEx, _GDIPlus_ImageSaveToStream

Voir aussi

Consultez GdipSaveAdd dans la librairie MSDN.

Exemple

#include <GDIPlus.au3>

CreateMultiFrameTIFF(@MyDocumentsDir & "\GDIPlus_MultiFrame.tif")
ShellExecute(@MyDocumentsDir & "\GDIPlus_MultiFrame.tif")

Func CreateMultiFrameTIFF($sFile, $iPages = 4)
    _GDIPlus_Startup()

    Local $sImgCLSID = _GDIPlus_EncodersGetCLSID("tif") ;crée le CLSID du type de fichier image TIFF

    ; Crée l'image principale
    Local $hImage = _GDIPlus_BitmapCreateFromScan0(400, 300)
    Local $hContext = _GDIPlus_ImageGetGraphicsContext($hImage)
    _GDIPlus_GraphicsClear($hContext, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawRect($hContext, 5, 5, 390, 290)
    _GDIPlus_GraphicsDrawString($hContext, "MultiFrame TIFF" & @CRLF & "Frame " & 1 & "/" & $iPages, 20, 20, "ARIAL", 32)
    _GDIPlus_GraphicsDispose($hContext)

    ; Sauvegarde l'image principale (première trame) et ajoute MultiFrame-Param
    Local $tParamData = DllStructCreate("int")
    Local $pParamData = DllStructGetPtr($tParamData)
    DllStructSetData($tParamData, 1, $GDIP_EVTMULTIFRAME)
    Local $tParams = _GDIPlus_ParamInit(1)
    _GDIPlus_ParamAdd($tParams, $GDIP_EPGSAVEFLAG, 1, $GDIP_EPTLONG, $pParamData)
    _GDIPlus_ImageSaveToFileEx($hImage, $sFile, $sImgCLSID, $tParams)

    ; Définit le paramètre pour les trames additionnelles
    DllStructSetData($tParamData, 1, $GDIP_EVTFRAMEDIMENSIONPAGE)
    $tParams = _GDIPlus_ParamInit(1)
    _GDIPlus_ParamAdd($tParams, $GDIP_EPGSAVEFLAG, 1, $GDIP_EPTLONG, $pParamData)

    ;Crée et sauvegarde les nouvelles trames
    Local $hImage_SubPage
    For $i = 2 To $iPages
        $hImage_SubPage = _GDIPlus_BitmapCreateFromScan0(400, 300)
        $hContext = _GDIPlus_ImageGetGraphicsContext($hImage_SubPage)
        _GDIPlus_GraphicsClear($hContext, 0xFFFFFFFF)
        _GDIPlus_GraphicsDrawRect($hContext, 5, 5, 390, 290)
        _GDIPlus_GraphicsDrawString($hContext, "MultiFrame TIFF" & @CRLF & "Frame " & $i & "/" & $iPages, 20, 20, "ARIAL", 32)
        _GDIPlus_GraphicsDispose($hContext)

        ; Ajoute les trames au fichier
        _GDIPlus_ImageSaveAddImage($hImage, $hImage_SubPage, $tParams)

        ; Libère le bitmap de trame en cours
        _GDIPlus_BitmapDispose($hImage_SubPage)
    Next

    ; Ferme le fichier muli-trames.
    DllStructSetData($tParamData, 1, $GDIP_EVTFLUSH)
    $tParams = _GDIPlus_ParamInit(1)
    _GDIPlus_ParamAdd($tParams, $GDIP_EPGSAVEFLAG, 1, $GDIP_EPTLONG, $pParamData)
    _GDIPlus_ImageSaveAdd($hImage, $tParams)

    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
EndFunc   ;==>CreateMultiFrameTIFF