Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
FileInstall(".\Example.jpg",@TempDir&"\Example.jpg")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Sign Generator", 403, 173, -1, -1)
$L1 = GUICtrlCreateLabel("Votre Message :", 8, 8, 81, 17)
$L2 = GUICtrlCreateLabel("Coordonées X,Y :", 8, 40, 87, 17)
$Message = GUICtrlCreateInput("", 96, 8, 297, 21)
$inputX = GUICtrlCreateInput("80", 96, 40, 33, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
$inputY = GUICtrlCreateInput("12", 144, 40, 33, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
$Pic1 = GUICtrlCreatePic(@TempDir&"\Example.jpg", 8, 72, 383, 60)
$Save = GUICtrlCreateButton("Enregistrer", 8, 136, 379, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Local $LabelBuffer = GUICtrlRead($Message)
Local $XBuffer = GUICtrlRead($inputX)
Local $YBuffer = GUICtrlRead($inputY)
While 1
If GuictrlRead($Message) <> $LabelBuffer or GuictrlRead($inputX) <> $XBuffer or GuictrlRead($inputY) <> $YBuffer Then
Local $StringPic[4]
$StringPic[0] = 1
$StringPic[1] = GUICtrlRead($Message)
$StringPic[2] = GUICtrlRead($inputX)
$StringPic[3] = GUICtrlRead($inputY)
$Test = _DrawStringToPicture(@tempdir&"\Example.jpg", @TempDir&"\SignBuffer.jpg", $StringPic,0xFFFFFFFF)
GUICtrlSetImage($Pic1,$Test[0])
$LabelBuffer = $StringPic[1]
$XBuffer = $StringPic[2]
$YBuffer = $StringPic[3]
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Save
Local $SavePic = FileSaveDialog("Sauvegarder", ".\", "JPG (*.jpg)", 2)
If Not @error And IsArray($Test) Then
Filecopy($Test[0],$SavePic&".jpg")
EndIf
EndSwitch
WEnd
Func _DrawStringToPicture($OriPicture, $DestPicture, Byref $pStringArray, $FontColor = 0xFF000000, $pStringFont = "Arial", $pFontSize = 30)
_GDIPlus_Startup()
$BitmapPicture = _GDIPlus_BitmapCreateFromFile($OriPicture)
$BasePicture = _GDIPlus_ImageGetGraphicsContext($BitmapPicture )
$hBrush = _GDIPlus_BrushCreateSolid($FontColor)
$hFormat = _GDIPlus_StringFormatCreate()
$hFamily = _GDIPlus_FontFamilyCreate($pStringFont)
$hFont = _GDIPlus_FontCreate($hFamily, $pFontSize, 1)
For $sCount = 1 To $pStringArray[0]*3 step 3
$tLayout = _GDIPlus_RectFCreate($pStringArray[$sCount+1], $pStringArray[$sCount+2], 0, 0)
$aInfo = _GDIPlus_GraphicsMeasureString($BasePicture, $pStringArray[$sCount], $hFont, $tLayout, $hFormat)
_GDIPlus_GraphicsDrawStringEx($BasePicture, $pStringArray[$sCount], $hFont, $aInfo[0], $hFormat, $hBrush)
Next
_GDIPlus_ImageSaveToFile($BitmapPicture, $DestPicture)
Local $ReturnPicture[3]
$ReturnPicture[0] = $DestPicture
$ReturnPicture[1] = _GDIPlus_ImageGetWidth($BitmapPicture)
$ReturnPicture[2] = _GDIPlus_ImageGetHeight($BitmapPicture)
_GDIPlus_ImageDispose ($BitmapPicture)
_GDIPlus_Shutdown()
Return $ReturnPicture
EndFunc