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