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 )
$hImage | Le handle de l'objet Image. |
$tParams | Une structure _GDIPlus_ParamInit. |
Succés: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur GPSTATUS ($GPID_ERR*). |
Utilisez cette fonction pour sauvegarder des trames données d'une image à trames multiples vers une autre image à trames multiples.
_GDIPlus_ImageSaveAddImage, _GDIPlus_ParamInit, _GDIPlus_ParamAdd, _GDIPlus_ImageSaveToFileEx, _GDIPlus_ImageSaveToStream
Consultez GdipSaveAdd dans la librairie MSDN.
#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