[R] Aide concernant _GDIPlus_GraphicsDrawImage
Posté : lun. 15 févr. 2021 14:41
Bonjour,
je teste l'affichage d’images dans une Gui à partir de strings en base64 et je me retrouve avec des affichages incohérents. Il semblerait que si l'image convertie en base64 est un gif, l'affichage soit correct mais si l'image est un jpg, l'affichage n'est pas bon (mauvaises dimensions, mauvais centrage).
Lorsque j'utilise _GDIPlus_GraphicsDrawImage, l'image gif s'affiche correctement mais pas l'image jpg
Lorsque j'utilise _GDIPlus_GraphicsDrawImageRect avec les dimensions des images, c'est le bon affichage.
Voici mon script:
Voici les images que j'utilise:
Pour l'encodage, j'ai utilisé le "'File to Base64 String' Code Generator v1.20 Build 2020-06-05 by UEZ "
J’avoue ne pas comprendre ces différences d'affichage. Pourquoi _GDIPlus_GraphicsDrawImage ne respecte pas les dimensions de l'image jpg?
Merci
je teste l'affichage d’images dans une Gui à partir de strings en base64 et je me retrouve avec des affichages incohérents. Il semblerait que si l'image convertie en base64 est un gif, l'affichage soit correct mais si l'image est un jpg, l'affichage n'est pas bon (mauvaises dimensions, mauvais centrage).
Lorsque j'utilise _GDIPlus_GraphicsDrawImage, l'image gif s'affiche correctement mais pas l'image jpg
Lorsque j'utilise _GDIPlus_GraphicsDrawImageRect avec les dimensions des images, c'est le bon affichage.
Voici mon script:
Code : Tout sélectionner
#include <GDIPlus.au3>
_GDIPlus_Startup()
Local Const $iWidth = 900, $iHeight = 420, $iBgColor = 0xFFE8FF ;$iBgColor format RRGGBB
Local $hGUI = GUICreate("GDI+ Example (" & @ScriptName & ")", $iWidth, $iHeight, -1, 100)
GUISetBkColor($iBgColor, $hGUI)
GUISetState(@SW_SHOW)
$left_10 = 10
$top_10 = 10
$delta_vert = 30
$delta_horiz = 110
$ecart_vert = 80
Local $hGraphics1 = _GDIPlus_GraphicsCreateFromHWND($hGUI)
Local $hBitmap1 = _GDIPlus_BitmapCreateFromMemory(_green_gif())
Local $iW1 = _GDIPlus_ImageGetWidth($hBitmap1)
Local $iH1 = _GDIPlus_ImageGetHeight($hBitmap1)
ConsoleWrite("$iW1=" & $iW1 & @CRLF);300
ConsoleWrite("$iH1=" & $iH1 & @CRLF);25
Local $hGraphics2 = _GDIPlus_GraphicsCreateFromHWND($hGUI)
Local $hBitmap2 = _GDIPlus_BitmapCreateFromMemory(_green_jpg())
Local $iW2 = _GDIPlus_ImageGetWidth($hBitmap2)
Local $iH2 = _GDIPlus_ImageGetHeight($hBitmap2)
ConsoleWrite("$iW2=" & $iW2 & @CRLF);300
ConsoleWrite("$iH2=" & $iH2 & @CRLF);25
GUICtrlCreateLabel("green_gif à " & $left_10 + $delta_horiz, $left_10, $top_10)
_GDIPlus_GraphicsDrawImage($hGraphics1, $hBitmap1, $left_10 + $delta_horiz, $top_10)
GUICtrlCreateLabel("green_jpg à " & $left_10 + $delta_horiz, $left_10, $top_10 + $delta_vert)
_GDIPlus_GraphicsDrawImage($hGraphics2, $hBitmap2, $left_10 + $delta_horiz, $top_10 + $delta_vert)
$top_10 += $ecart_vert
GUICtrlCreateLabel("green_gif(rect) à " & $left_10 + $delta_horiz, $left_10, $top_10)
_GDIPlus_GraphicsDrawImageRect($hGraphics1, $hBitmap1, $left_10 + $delta_horiz, $top_10, $iW1, $iH1)
GUICtrlCreateLabel("green_jpg(rect) à " & $left_10 + $delta_horiz, $left_10, $top_10 + $delta_vert)
_GDIPlus_GraphicsDrawImageRect($hGraphics2, $hBitmap2, $left_10 + $delta_horiz, $top_10 + $delta_vert, $iW2, $iH2)
$top_10 += $ecart_vert
GUICtrlCreateLabel("green_gif centré", $left_10, $top_10)
_GDIPlus_GraphicsDrawImage($hGraphics1, $hBitmap1, ($iWidth - $iW1) / 2, $top_10); centré horizontalement
GUICtrlCreateLabel("green_jpg centré", $left_10, $top_10 + $delta_vert)
_GDIPlus_GraphicsDrawImage($hGraphics2, $hBitmap2, ($iWidth - $iW2) / 2, $top_10 + $delta_vert); centré horizontalement
$top_10 += $ecart_vert
$pos_gauche = 190
GUICtrlCreateLabel("green_gif à " & $pos_gauche, $left_10, $top_10)
_GDIPlus_GraphicsDrawImage($hGraphics1, $hBitmap1, $pos_gauche, $top_10)
GUICtrlCreateLabel("green_jpg à " & $pos_gauche, $left_10, $top_10 + $delta_vert)
_GDIPlus_GraphicsDrawImage($hGraphics2, $hBitmap2, $pos_gauche, $top_10 + $delta_vert)
$top_10 += $ecart_vert
$pos_gauche = 450
GUICtrlCreateLabel("green_gif à " & $pos_gauche, $left_10, $top_10)
_GDIPlus_GraphicsDrawImage($hGraphics1, $hBitmap1, $pos_gauche, $top_10)
GUICtrlCreateLabel("green_jpg à " & $pos_gauche, $left_10, $top_10 + $delta_vert)
_GDIPlus_GraphicsDrawImage($hGraphics2, $hBitmap2, $pos_gauche, $top_10 + $delta_vert)
While 1
Switch GUIGetMsg()
Case -3
_GDIPlus_BitmapDispose($hBitmap1)
_GDIPlus_GraphicsDispose($hGraphics1)
_GDIPlus_BitmapDispose($hBitmap2)
_GDIPlus_GraphicsDispose($hGraphics2)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
Func _green_jpg()
Local $Base64String
$Base64String &= '/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAZASwDASIAAhEBAxEB/8QAHAAAAQUBAQEAAAAAAAAAAAAABAABAgYHBQMI/8QAPxAAAQIEAgUIBgcJAAAAAAAAAAEDAgQFBlKhERUxQpISFiEyQVORkxMUQ1GBogciMzZydLIlNVRVYWVxc4L/xAAbAQADAQEBAQEAAAAAAAAAAAABAgMABAUGB//EADARAAECAwUGBQQDAAAAAAAAAAEAAgOh4QQFBhZSERVBQlGRFDFDU2ESE+LwITKB/9oADAMBAAIRAxEAPwDapK5bfgag9ffpkUwsKK4rzsHKVdHTp09OkNguO1I+q7R/g42YDci/tR78RGRi2Hx77wewkbOK/LrRiKPBe5oHkTx+V9CpXrYXY7SfMbJJXLc7HaX5jZhTUQW1GQN5v6LlzTaNIW2pWrf7Hqd5kBJKzQux6Q8yAxluMJbjBvFx4JhiWMeULX0rFFXY9I+ZAOlUo6+1kuOAyhqL+oYzFsCLc48Fdl/xncoWmawpC70mv/UI/rlHX+D8YTPmlCYFGFsd0XQ2+Yp4K8esUhd2SXhG9NR13JL5CnwE02jeLeqi9ovRW1XKN2tSXhANy6L3Uj4QFVXYRU3jHo72jK1q5Q+1mQ8IBvS0FPZU/wAICouHjGbxr0pvmMFc1mKAm1unfIRWat5NsFN+QoroI6vvAbfECi6/Y44TWiLO24idMNM8WyOsLa91L8WzM3V6AeOIXeMQcFB2'
$Base64String &= 'JLQOE1qesrZ/tfE2NrO2E/lXE2ZNHEeEcQN5xOiicUWgcJrYNa2v76TxNja3tZO2kcbZjcUR5RRA3rE6TUziu0jlHcradc2ripHG2Nrq1E3qPxtmJRKQiU29onRIcXWkco7lbhru08VH42ha8tPFRuNowxVIqpt7xeiGcLVpHcrdde2lio3G0LX1pYqLxtGEqpFTb4i9EM42rSO5W8a/tHFReNoWv7RxUXjaMGUY2+YvRDOVr0juVvWv7RxUXjaFzgtH30XjaMFEbfMXotnK16R3K3rnBaOjrUTjaIRXHaEO2Kh+Y0YOoLMbFGbfEU8E7MYWon+o7lb27dNnImhHKHp/2tHHqNyJ6aHVE7C3LLDslnE5GnSunq9GnYYS59oXq1v3TB+JT07utr49oAPQr6W4L6jW62BjxsGwrj1mnTU1UXImm4vrLp2bAyn21OLAkUS6PgW6r/emq/m3P1KHS/UQd1xBxJL/AD+KqsXBrIj3PdF8yT5VVVatuaTfyCW7dmU9pkWqAJaJm4WjnlVROCII9SVVVG7fmMeR7t0GYTfyLlL7A9nYTNzMHNKqXJ8FvqSqqM3QphN/ILaor6b+RdoRRAF1NHN+907cLwm88qqqNUd5N/IIgpLqb2R3HdigL+1Srbpaeb97rpZhuHrlVeENKd0dbI9EpbuLIFeBXO0sLnaeaVV0tw3D1yqurqtzFkMtKdxZHGiIqPuVuqVU+WoeuVV14qU6u9keUdJdxZHMUYG5G6pVSHDEM88qoxyjvYsgV2ivLv5EVObUdgpuNp5pVU3YThHnlVFu0N/R18geOgzGPIrEz9tEeQu4Wa5VUDg2EfUlVWaKgTGPI8Y7emF38iviBl9muVVM4Jgn1JVXbit2Zx5EIrcmceRxxAy8zXKqQ4Ggn1ZVXUW25nHkRW2pnHkc0QMvM1yqlOBIPuyqujzZmceQy2zM48jniNl1muVUMhwPdlVH82ZnHkNzZmceQCIGXWa5VQyFA92X'
$Base64String &= '5I5bYme8yG5sTPeZAQjZdZrlVbIUD3ZfkjebEz3mQubEz3mQEI2XWa5VWyFA92X5IxbYmceQJNWxNpCvJi0/AYQRh5o55VRGA4I9WVVwZuizjTv1m4tH+Cz0OF2Wp0DcTUSqqquxQY1/6Hvuo5+bj/TCddjunw0X7n17f8qvVunDIu60feET6v4I2bNnn87Sv//Z'
Local $bString = _WinAPI_Base64Decode($Base64String)
Return $bString
EndFunc ;==>_green_jpg
Func _green_gif()
Local $Base64String
$Base64String &= 'R0lGODdhLAEZAPcAAA+mLHyahATNLnzahETNVbTZrnSbfXzuhgS4IiTNRETjW5zsoSS3PbTys2Tma9Txzny6dCTcQgbWKwTEJ5y5n5z3o0y1XIH2i5zSnGTLbLT8siSkNGS6XBS4K5zEmVTlZRTNMzTdS2TucQWuG6TgpETYW4zslDTMUcT7vxTXM5z2rCTEQxSsMKztsUTBVxTFMqzEqAW+JHTjf1TqZIz2lNT616TXoGTabDTiTgXSKHzhh8T1vZTDkVTYZRTeNoTtl6TqtGTGbBTNPCTVRFS0XRy4PUzqYuTu3CviR8T9zIzelAS4LJzypGTqbNzx3oy4j6y+rJzKngSyIjTWTKz5sXTZfbTktILyizS7TATENKS+maz+pLz+xSSxOXS+dZTyrBTXPDTGTAzNMlTKZEzkYCTdTBS+K3TvgKzgn4zykhSyKI/+nH/mgp/+oazRrKTCnFzlaTTdVETeWBTCPFTqbMz0xym+Sbz8uqzKqSzVSoyrkHSmhITriqTtpdT20gTWNAzEK5TSlIeljGy5dFS+YcTmxBygNDSuRHy+hIT+lmjSeJS+oHTCbKzmprTetLT2sUi6ViSqRGS+ZBTSNGreclTSYGTmdHy2jIT4laTRpwSuJoz6nKTWrEXSXKTmqKT+rUzGXFTeZBbSPFe6X9j23LTqtZSylHSifKzyrAi+LnTqfQzSN5TKlI3mlGjqdaz+rqS+pRmyOIPmkqzetLzauCzLTCy5QKS6paT5pCykRGy3bBy4MhzLNGzudUzXYZTsmTzNVcz6wyzFSbTGpGzXeTzjVITijZS4mDzVVCywPITylKTytxy+PHTeg2y+eHSuhJTalBymNBzePaTypqTKnAyyJhy+NJTynEzeX7TKrNz2zLz2vFzSbEzOXAy2I9zy1CzdRKTRmzzeTBzYNKT2rRytL0zAXBzFNFzrZJT2lNz63FzZZ2zCbxzMP1y0YMz80gy4LrzivDy+VAzEOBzYPTzF'
$Base64String &= 'SSzcTDzcVRzCPVzrbAzXNGzkdIS5hgysLJT2nazZsiwAAAAALAEZAAAI/wCd0GIViNobGDBgwTiIh9owGJnCYQgXJRMGi5lshLNhgxNHEiQ4gSSBZiQaT54apWzEsg/LlyldpkRDsyZNG2hw6uTIkyMGjRMxBA3HKhy1ox6oeXjjYWlTD6yYMuXB4w1VLVStMtXyRosWD1+1UPAwtixYr2jTeqWwVi1atmzTmiVLlwJTu2/y6t1rF9ZXWF39wrql5RZhCoMJG9YCSzBjxo4bM1ZcuDLly5YHF9ZseHHjz41vDYYFpfPY0KI9UKX1LVu8BndQ+PHzoMbsGnVoP3gX7B3v3sCDJQlGPBiKHSiSK4+Ngrny5smdQ4/+PLmG5cl33NmBvPs25NuOi//vzr28+fM76qRPr75Oe/fr37uHv+NBevv2/bh/UIf//P779efffwES+M58Bwbznx8KEkigf/pFSMoDs81GijYVflNhhaRYWKFtIPqhDik1kDJiiSeaSKKKKIpIojbqiFhDDerMWCONOJZIyo487vgAKU48YNwOhWTjQSkavKLBDu/UkMQ7SUR5nHsK9lYHcfJRWd2W0SHH5Q5LHhcmmChchx10sd0RW3jOBUOeeeOJFyd5c47HXXvUxZYECnvekYSffqIQ3pZ7osAFn3zewcUOiy6axA57Poron0lwQWmkfEYpXJScdhollKA+GmUdUUL6JKehpvokqKz65uqrsMb/Kiusq/p2aqwzklJHibWp90gD8VDAwywqfHJHA9twoSwXGizLaXbZGQetcn9il+Zz0p0pnZrcdutttxpwq8E24cZ2Xbnfpqsut2iuW264Gry7brdcKNrssvgym++69farZr7KKirwv/9WarClCFt68MIKNxwlwgZH7LDED1essKcQQxyxqHVAaR+5GrRgxTFPkGDCF9P04QkQy7S8DDnkUIHKzI9Q0YDNVMj8CCo68/xIzUCj8ogGQOc8NBVA/6z0z0Qz'
$Base64String &= 'vUW8OW9BhQZTx2u11U9fnXW8Q1/t9ddgg60k1F5vsQUqGpg9tdlSp02F1FK/krPccuf8CRVy3303LlTc/51zAz83APivqDRQ+OGGC5644oK30IDjgv8aOeOCF0755ZhL/uvmgHfO+eeTf2454qiUUnoDpTyOegustwAEEAtc8wsJ/JRsAh8mLKDCAst8wYQ/KvjzhQrEF098BSpUoPzyFbSBvPOfFNtG8tFP73wFuGCPCy5bbN+999y3IX4buHxSvvl7f/LKFm18wv774LPd/fj01z8+LuTnj3/7+JvPfvj4CyAA2Ue+7WVve9o74AGV57zrXY+B/qhABGEGs2V8YhkqoKAGp2HADhpQewmsAAeZgAsSmrCE2ZsG8shBPBYaj3hMQF4FYuiP39mwhji8oQ5r+IVr+LCH15gh8/+EyIQiMmEBfViAEpX4i1+YwAQHkAXt+BGIHxwAd9cwxg9+kIY0YAITm8BEIsYoxjGuYYxmTOMZ17DGRLSRjXCMoxzZ2AY62rGOa6jj+PIoPj7a74+ADKT9/MjHPH5ifM1rnh7XkI42NDKPkMTjHCdJSTi68ZJvTKMm0cjJM3Lyk6AMpShHScpSmjKUX0xlGpTBygP84ApnuMABlHAJLxDhEMnYgCFykYtI+DIZtrAFFrBgh2IKQxhhOGYYlnmCMDTzBMCIZjQJAAwCEKAT2MxmJ0rQDV9405s9CGc419GDdazjBjegRDopQQxKuLMZlJDBPvYhg3qywZ731IE96cn/hn2wQRX/3KcqZKAKfxr0oP2sZzPmuVB3OtSh6IwoOs1pzkqsoxKV6AFGK9GNjnq0o9YEhTVHSlIXEKAewDiBSlU6BZXW4gQvFUYtwlCLYx6zprVYgTASsAKd9vSnQA2qUPGBjxUQ1ahFTSpS8cEMZhD1qVCNqlSnSlRmWMOqRZgDM4qw1SIUIRZgjcUGomGIspYVAOUwBBG8wA4LdCEWLCgHC1gA1l3swgxQbUc7zqHX'
$Base64String &= 'BPh1CAkYQh4Em4fCTiEPhz1sHKZwjynE4R6Qjawc7qEAOSgAG9ggg2Y/QIYPfCAUDoBDaB1AWgdYwhLz3IcrVKtaVbjCtQWNrSpme4ba//biDLPNbW5fO9smzHYfTZjnak9rCdOGFg5w8GxyPcvZD2QWs2RQQHTlIAdx3KME17VuZEPg2Clw17uILax48xABepj3vOcFAz3AwF4wiMK9ohDFJOIb31WIYhVCWIV99bsKMezXv2IAcID7KwABiKHABy6wghX8hwU7+MEQjnCEJ0BhCscgBkuoRj/6oQkAAEAT/VBDF4gwiCCYowjwgEc1VpziVJjhBYCYhxBAQONJtMPG8aWHKNAbgSH0GBxDAIeQ7UHkEMTBHiEIAQ6SXIwmO1kBUJauETrL3A/AAR1wyEcTtNyELnfZFU1whZh7QeYym7nMZzCzK3qx5jW7lv/MYBazlx3QBDqTNh90yDMdZqBZI/jZCAoAdKCd3GQciAMHiEY0EkKABCE7OgIRAAekJz1paVhaGj7AtA82zelOp0AfoP40qEcNagmUWgKo1geqc4DqVLO61bCOdQ5mzepXS6DWt841rnet617T+te/FkAOCmxhBBhbCppI9gi80QULOCMIkNgFPLyBgGpIYQnwcDEgcgACMdQYBJOYxDjmO45yn3fSPo50pIWMBHssWtFKRrQ4mhxlzUp5Bh/A9wxmgI5+5wMd+ciHCESADhHkwxUDF0EvFM7whZ/54XBecxN6MXEReLnLFtdyPrIMhz3PwAgf93OUoVwMBRAaB8X/SLSikYADliPh5UiIwMulgQRpRIDmlqaHNMaxc56XexwpAHrQU0D0oqdAAkTPwdEngXQJrKLpKWB11KMuAabX+tW7BrbWr771rnt96xOYddgrXGxjI2AEUki7N2LhbHZEe9reSHu2vQGIugc4wODO+zhEsfdx0MPv5Y7AOCgt5HXjAByLjvehiyGOxo9cs2SYshHyve8Z0AEdl/93wBPO'
$Base64String &= '+YQvnOEKdziZQ0/60Tu8CRY3OOoDDvCAV/4DIIf8ZouhWULPW+Usb3mjXy7z3le6vNLQ+eDHMYSfG3/oQB93Ciax/HEonflHn/qsbx316V99FTnAPvZzoA9a3/rr4A+///hpTfYLX9jsaUfA2p3tDCIwoBod0HA1luCNDpjB7jTOf7jlK26+/928lEZ4jgYOScZySYZy82ZylmVvnRV5H7dv6MBvmhdwAidwqDdwn9dwoXdmpcdmFGd6F4h6BQdwW5YPM8BxJ1hlocCAchBd4mByCjBv4hACM5hkSjaAhSdpkjZp9ABpPfiD6LVe9JAC7GV0RMd0RIdqR2dqpgZqT7cK3adf2ad138d1VfhrVzh+Wkh+OUBhXVhhMYAAYXh2aScF3qAGROAMtsQAsbBiGpZi3nB/gABj3VaHkwBu8kUP4mZegFdeAaiDiGcPBJhoxXAPhWhZlUUGmdWAk6dvlv/Xelu2ZSIAZqAHcZYoeg33gQyHeqtXghT4b8iFXMwle5r1gtSlAIZ4DzNYg0tmgziobgEYhOalXrNIhGBghJ+2dE2oaqPWarP2B7/4a8DofVtofVlYjOEnbBMgAGRndgiAbFKwbM3mDM7gVilWhtgGD3KId95WY/s3Xyngf+YVfH4ogPYgc/awZCrnZIgoXYvYXPl2ZVmWD5agcZYQZmE2iQvXZhS3ZmSWZpfoj6eXek1QcAIHcFhGBx2XD56Fb5wFeTEYXYR2DzhAkXEQByFAZETWbr4HadJQBkCoc+aVAtIQdCXpA0TnA6GmD6LGkqTGhKj2BzL5BxJAk8B4kzn/gJM3KWur9n2+ZoVXV4VCSYzWl3W0RmzMWHbPOAJMuWLNNgjtFwvwcGxSgADYlgoTAAh35239NQmrMAn6wHxgMA7shV7BZ3M2R2mN5m5EdpHFEAeFWAyW1YLS1YD59gF08AEBl2VNAAdxJmZjBmceeImXWHGnx4kG94mux5B00FlTFnkjZ3KEVgxKdmQt'
$Base64String &= 'FwfthgRl4HtpaXMimXM+4HMlmZIpgJKlSWqiJmq7qA80CWutGWsxmZO2lmu06Ys92ZNAWZS5CZRXKGzDxoxJiWFVGY1MaYbTuIZTaWzUtgRLkAUUtm3bln1euXwpsAq3WJZgIA3ZqXPkqJaIl5kuh2hP/1ZvkMdcJ4gOemllXKZlCedlG0iYDyeQo5d6GWdwiWmCDGl5IPdngOZnk1loKadkGZmZGwlpMVdzHnlp60V0Q4h8RueSEIp0thZ1qlabvvaTWFebRul9GHqhvPahuqZ1ykhsFrYEVcmUTGlsRWABXmBLXbAEFzYCK7YEqYCVgAACWnl3/AWFy6dePnpe5LiZkHaO4EBkQhYCg4hohsh45Cl7d7lvV+Zv6HBxDveetwWf8almBNlliolnedmQfRZdkfmf8IZkGll4AeiZwYde5uZ3Q3eLogYGLMmjq1CdFMpq2jeFH4prQ+mhsImMgPqbCraMJboEZlecS8ACFjAIjP9gAUUAozEQjfNHo1lQdy8gBjn6bd9GXzt2XkNAD0MQqmUgWPaQB0VGgDRIg9Y1l3KADZdFBqFQZfKIZQV5cWEGmLjaZq4FkKrQC7Dlq6/FZq41ZoAJXBd3j3BQjx2nkFW2iK1KXZOVihc5rRepkUSWB+BAXunmY6AahDu2d5PgXuL6XqKgD/e1o+iartq3rjuaA2JwlFl3jOPnm8MGr7NGr/harwomqOV3fkuZovBQBGtVjQwAD2E4Av2wYnMwD3MwB+fAC7zQDkLQDqJAsbwwBO0QqqIwBKNqD0PgsaV6rYs1shcZWZJlWZj1XMyVXKE4WnUWXH85rLuaW2fwTzX/W7OqcAA5u7O0ZbO65Qpn8FpCC5inNVzJilyWEIqj6Fz2FmWTFa0miwzT6l2LlZHXWqqjmgejyrGi+qn0AJKz6K06tl47tmPw1V7kirbslbZzmot1+rb6oF9g+ZVxW51fKbdx65VhqV92O7d665VQGLjVOQneVrhiMA91'
$Base64String &= 'd34Hi3bYxnaDIAmjYAupMJUdYFdO5VfilVhT0F3Teg+PVYgmi4qVFZnRRYpfipfIRY9hxp5Welu4VVtncACyK7tXcAWzW7t8gLu1q7u7mwZXwAfK8LvCa7t8cEWze7yyqwq49bO4ClylNY94xpikKHvSFZmjS12UlYopZ4g4AJdx0L0X/9m9iJaO6YgEmImZbEmg6pu+bGkPZWCt8CuIpmqtVmu18Xu/+Bu/mvm+ZVCkHhuqCaBX52ANu+ANBmzACJAKKzoIHAAJtsAMHUDAtkBTJ4AMyFACGExdrooNrUqKD9lcjalnepZldPCJriBwCAdmDwe7sAtLu/vCvXsFNHABNFDDNkwD6ZAG6YDDOLzD14DDacDDOfzD19BFXYQJXrRKvhu8L3wAtou8B8DCtlWlFpfCB3fCB6eYHKeQeoaXZBDCkSd7dBBo0SVopWu9aJzGarzGbNzGbvyfkmmym3sCPXUOZmAGHVCj82AHRKALHEAI9WAHOhUG9WBN3hQK6xAKof8AB+vwAesQikjLcRpXgic8iZRocVW6wrAbxQdwAbF7AaAcyldAwzRMA0Fsw5uQDungD6vcyq6cDhWgyhEEy7Acy7b8yqqcyzu8wzYcxL7cRXyQBnyQu8RcvLIbuyx8pWnGj/7YZoD5ZU1wj9FMj9QMvQFXwlucZenJkNG7zVaWl1x8lwqZgpaHb0aQZ7BHB5O3Z5N3zuyczvupzg94zvv5cfIczyDnkA5ZZc2FWb5QAshwAkMAsedwDi+AD3bgDroAAY/rAuYwBkEQBBmgCIpADFVw0VXQDFUwAM0wADowAAMgA82gAzow0iMtAyTNBjrABizN0rLQ0sZwRcM8zLf/80Q27URNlNM5zQS/UEQLUER9wAR90AcpMw1GfdSoMA0zgwotMDNNvdRQHdVMPQ0tYNRVXdREnURajURL1NWtsABf3Qqt8AtjLdZirQRiLQtmbQytYAxKYAxw/dZwPdd0rQNwbdckndd6'
$Base64String &= 'rU8kbdIlrU8o3QwiPdiBzdd+3QyIXdILJdjxtNgy0Nj7wNgiHdmPjdiUYNmYDU+ZfdmardnytNiRjdjNQAyjTQymzQ3cwFHmUA8uIA8uQAhewA9HIAh7sAeXUDtP8ASLsAh08RRR4AG/HQXCDQPCXRGZcNzIzQn/sNz/MAvObQXQHd2lYAWlMN3VHQ/THd3abQWOwN2ObVAA4F0AbjDe5I0H5o0HCJHeCrHepUEanfHe8G0YiRHf9C3fhkEBt0AB+m0KpqAH/i0IpxAAAWAAAz7gBG4ACI7gBm7gCd7gDv7gEB7hEj7hEL7gCn7hB57hFq7hGL7hHk7hFG7gp2AAeuAEAQEAOw=='
Local $bString = _WinAPI_Base64Decode($Base64String)
Return $bString
EndFunc ;==>_green_gif
Func _WinAPI_Base64Decode($sB64String)
Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
$aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
Return DllStructGetData($bBuffer, 1)
EndFunc ;==>_WinAPI_Base64Decode
J’avoue ne pas comprendre ces différences d'affichage. Pourquoi _GDIPlus_GraphicsDrawImage ne respecte pas les dimensions de l'image jpg?
Merci