Jump to content

Recommended Posts

Posted

Btw, I had a quick look to the link you have provided and I can embedd any image using the code generator

Test.htm

<img src="data:image/gif;base64,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"
width="128" height="128" alt="embedded png image">

Br,

UEZ

Wow, amazing, is it possible for other kind of data? Maybe for example a download link with <a href=" Base64 here ?! ">
Posted (edited)

Wow, amazing, is it possible for other kind of data? Maybe for example a download link with <a href=" Base64 here ?! ">

I'm not familiar with HTML coding but it should be possible. Beside that I cannot see the logic to convert a download link to base64.

You don't think there would be a way of determining, by looking at n-bytes of the decoded string, if it is compressed or not?

I can't seem to find a pattern.

As far as I know there is no header information after compressing any binary data using the build in function in ntdll.dll. You have to know whether file was compressed or not.

On another approach, in which cases did you find the compression to be of disadvantage?

I'm dealing with files from around 20kB to medium 150kB, maximum 20MB.

Personally I think it wouldn't hurt to always compress the data. In a database it would make sense to have that sort of consistency.

Thanks

Just compare the file size with compressed size. If compressed size is larger than the file size it makes no sense to compress it. If the compression benefit is very small it can be that the overall code length is larger because of decompression function.

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted

As far as I know there is no header information after compressing any binary data using the build in function in ntdll.dll. You have to know whether file was compressed or not.

Just compare the file size with compressed size. If compressed size is larger than the file size it makes no sense to compress it. If the compression benefit is very small it can be that the overall code length is larger because of decompression function.

Thanks. I've decided I'll go with DB consistency. So, after some tests and an average space saving of > 40%, I chose to compress everything ;)

Posted

I don't want to get too much out of topic here, so I'll be brief just for the sake of letting people know the result of my experiment.

Your script works like a charm for small files, which is probably what it was intended for in the first place.

Starting with a filesize of 500kB or so it becomes really slow, perhaps proportionally - I haven't checked.

So now I'm zipping the files before inserting them into the database, in binary form. Care must be taken to INSERT, UPDATE and SELECT small chunks of data at a time. SUBSTRING(field_name, binary_start_pos, binary_read_bytes) and DATALENGTH(field_name) seem to work well, but I've read that depending on the SQL Server's version, datalength() results can vary.

Why zip? Well, it's a widely used format and it comes integrated with Windows since... whenever. Plus, if in the future some data recovery needs to be done, it'll be much easier to determine what kind of data is or should be there.

I'm using this UDF:

Thanks again!

Posted (edited)

By default the compression strength is set to high. That means for bigger files the compression speed will be worse.

You can change the compression strength when you hover your mouse over Compression label, press right mouse button and set it to standard. It will increase the compression speed immense.

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted

Updated to v1.08.

  • compression settings will be saved also to ini file now
  • added drag'n'drop feature to add files from same folder only to the GUI
Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

  • 2 months later...
Posted

Thanks for your feedback.

I don't know why you want to display an image in a label control rather than in a picture/button control (1st example: Display images from memory in controls).

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted

I'm just curious you know :idiot:

I've got progandy's UDF and it worked well with lables but it didn't work in a button.

and now yours is limited to Buttons/Pictures (I guess!)

Is there no other way?

:)

Posted (edited)

1st UEZ example, now using label control:

;coded by UEZ 2011
#include <buttonconstants.au3>
#include <guiconstantsex.au3>
#include <gdiplus.au3>
#include <memory.au3>

#include <StaticConstants.au3> ;----> For labels controls show images!

_GDIPlus_Startup()
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
Global $msg
Global Const $hGUI = GUICreate("Example", 600, 250)
Global Const $idLogo = GUICtrlCreateLabel("", 215, 20, 169, 68)

;----> For labels controls show images!
Local $hCtrlID = GUICtrlGetHandle($idLogo)
; Set SS_BITMAP style to control ID.
$aCtrlStyle = DllCall("user32.dll", "long", "GetWindowLong", "hwnd", $hCtrlID, "int", -16) ; -16 = $GWL_STYLE
DllCall("user32.dll", "long", "SetWindowLong", "hwnd", $hCtrlID, "int", -16, "long", BitOR($aCtrlStyle[0], $SS_BITMAP))
;<----

Global Const $idButton = GUICtrlCreateButton("", 266, 150, 78, 81, $BS_FLAT + $BS_BITMAP)

Global Const $hButton = GUICtrlGetHandle($idButton)

Global Const $Bmp_Logo = Load_BMP_From_Mem(AutoIt_Logo(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo))
Global Const $Bmp_Button = Load_BMP_From_Mem(Merlin(), True)
_WinAPI_DeleteObject(_SendMessage($hButton, $BM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Button))
_WinAPI_UpdateWindow($hButton)
GUISetState()

While True
$msg = GUIGetMsg()
Switch $msg
Case $idLogo
MsgBox(0, "Information", "The picture has been clicked!")
Case $idButton
MsgBox(0, "Information", "the button has been clicked!")
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($Bmp_Logo)
_WinAPI_DeleteObject($Bmp_Button)
_GDIPlus_Shutdown()
GUIDelete($hGUI)
Exit
EndSwitch
WEnd

;======================================================================================
; Function Name:     Load_BMP_From_Mem
; Description:       Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
;
; Parameters:        $bImage: the binary string which contains any valid image which is supported by GDI+
; Optional:              $hHBITMAP: if false a bitmap will be created, if true a hbitmap will be created
;
; Remark:                hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
;                            Don't forget _GDIPlus_Startup() and _GDIPlus_Shutdown()
;
; Requirement(s):    GDIPlus.au3, Memory.au3 and _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
; Return Value(s): Success: handle to bitmap (GDI+ bitmap format) or hbitmap (WinAPI bitmap format),
;                            Error: 0
; Error codes:           1: $bImage is not a binary string
;                            2: unable to create stream on HGlobal
;                            3: unable to create bitmap from stream
;
; Author(s):             UEZ
; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines and
;                                Yashied for _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
; Version:               v0.97 Build 2012-04-10 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
Local $aResult
Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
Local Const $len = BinaryLen($memBitmap) ;get length of image
Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
_MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
$aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
If @error Then Return SetError(2, 0, 0)
Local Const $hStream = $aResult[3]
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
If @error Then Return SetError(3, 0, 0)
Local Const $hBitmap = $aResult[2]
Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
"dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
$tMem = 0
$tVARIANT = 0
If $hHBITMAP Then
Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
Return $hHBmp
EndIf
Return $hBitmap
EndFunc ;==>Load_BMP_From_Mem

Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
Local $tBIHDR, $Ret, $tData, $pBits, $hResult = 0
$Ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
If (@error) Or ($Ret[0]) Then Return 0
$tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Ret[2], $Ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
$pBits = DllStructGetData($tData, 'Scan0')
If Not $pBits Then Return 0
$tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
DllStructSetData($tBIHDR, 2, $Ret[2])
DllStructSetData($tBIHDR, 3, $Ret[3])
DllStructSetData($tBIHDR, 4, 1)
DllStructSetData($tBIHDR, 5, 32)
DllStructSetData($tBIHDR, 6, 0)
$hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
If (Not @error) And ($hResult[0]) Then
DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $Ret[2] * $Ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
$hResult = $hResult[0]
Else
$hResult = 0
EndIf
_GDIPlus_BitmapUnlockBits($hBitmap, $tData)
Return $hResult
EndFunc ;==>_GDIPlus_BitmapCreateDIBFromBitmap

Func AutoIt_Logo()
Local $AutoIt_Logo
$AutoIt_Logo &= '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'
$AutoIt_Logo &= 'A8ohDeigTAyXCLDMxfoKAUMnvsRxrlSZBIDZ1jqBoQJuEy2Rydhko0xR1lz7ow4e6ZLtNkXFGDIGFkIEiQI0kwCMc9Ef6P/8gRdeWDBqGtGksXPfPxzdwDSRTNKGCUTUXfcITnzjggBWq7DETCpgkPZRX8jQBNgRXfFAAKin/qFFaG89QAZ4iLEECKnX3sREvdQxiBAjIGDCIjdEosMhh/zQDSXI75yLEuoYgoA4ZliwMyXdSPADIk8oXQk5bcAxwvcjnLNBBmCA0ITmUzXhw+eo4QAME0VSxAQCXNPAdkWtH6XBrngs0TnXHugH6RRSjFZoABKUg0MbLuEJHTwBET+QgASRR4lIsKIVfcigO0Lgh0MgT4I/0MIhLME4e0ADDS4AHwLgQAp+zOs2U5nfUbBBw/9gQwPZid1FZIiZOrBAhwYRwxX/2OWrg+QvM/jghgBi97+tnaMfZmtICgZhnxF0AgVtOEIl2PBALWhBghKcxiry0YdsaEMbfcBCKWIARgl4ERGWYMMpPNGDNvgiAk5wwjIk4cJMSIUgeICBb+5wBw/8pw5OcAEUBSKGJvTjkZDsRxMaGUlITpKHOsHGANiBB3QR5ApMAAEQRraDB/TjXf84ogeSuET/eQ4zHcBBP0AEkSokQAhOgEEGFnGJQpyCDZa4hzCFqYV7DOEPFSjjGbNRATmcwRPFHKYNLIGLOZLDFSK4kROIAABS0LIg/ehhAjRwh//cYQQuSIXH/tHErZ3yle7cQwAEmcnf4AB1ewhREx5A/z+uJQADe3CZQFSZRBPggQkBaAFmeJIA1J3MIVnAVS6tgIJEkKMQEGBDPWzA0XvY4B72uMACKpDMDPahAgv4BhfcwNGW1gMXz5jBLXqwCGZEAAY4iAIQvjmQ2flGAx3YwBh0cocgxUGg7TwKDCQJT9D1Q2vsI0Ej6NWEHbBPJ5B4wO1SCdWdFBQP4WQfNkwwuob0AjkwgAELauCKExQAFlSoRyjmOldPkEEUvOCFO0hKUnfwggJK4AIV6BoKKmwBAuM4Qg9kgYINwOAcVjCBKqKYPw8kABJRuINOxjCATpiLc031xwhewNStjSAKT+UaNn4jhE4cVQVAWChokqDZo/8kYA8eIyg3DBpWzKwWX8sAwiQbooQBOOEc3/BFEXpwhAIYYAthiG50IYACDiyAFwtYQD7ykV3siuIAzDiCdMNAD2pAoACCkIIsFsGCc+AAAT7wJluuYNXNpgUOJNhJB4LLBNBihgQRAEBpj0ICHLAjtUixYR0gsQwA+AIEKsADJI5yB3IBoBMDGKqSMtBfgkYWrDv5T2Y6YCBfBAB+DEnGOb5wjnN0QgTo6AEdCvCJN8yDHjimxy1YIYfsimIKf+DAASiw3XxQoBQiOAI95sHkNxgAvSeQRREkQYRzEOEFU41fO+/AGAHQIJMJiIAkdJhUAAu4CU01cz9A0IkkjOH/P5YlwjocqoIHYCYBkU1FHAbhmyQQYQ9i6yoSlXjQDTiBBCJGJADAEADzxQ8hWXDCCHDwDXbUIBFSmPEnHMCIN3T6FlwggChEIYcDVOEMzFDCHwggB1JPgRWOMECnGUEIB0D5FUVAwwRwQARnAEFzBGHCBiisKxksg8DngB1kyhzgAYsnAj44JR76OeJOAAEPeDifCXwT1B2A2DcDsMJRdbtEFTAhzRFYRz+yrZ+FrCCXEVjGKuaQiBPM2AgOIAQhGCGIXfxh1D8uRat2IQIeHIAAFJADBf5QAlnou9ZGKAAdTrAJdDjCBxH4RhR2MNlgU7sOI7DCA449GCe0YJHM/z4zuqO9BEx6oAOd8HYmlqA+bndiib31xxggsQHhkrt/Zf5GBmYphkcjpBeP/YYVuDAHTmS6Hfh2gAMMsAglJJwCdhjFGdDQCGjUAAqjmALCsV6KXfRA6g4wQjsmXvEa2JQIUQCGKtr9DzxcRjwwmMAD4HlOZ+yBXil3NmqgDUWXd8AKwOjfPwz/4ZyP4QvqAAMTriDo'
$AutoIt_Logo &= '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'
$AutoIt_Logo &= 'cy5hgUkAqHEOcABh1yoABOpwVLGVSVcAZYpQ1AQvsBMAfYoZ69AEe4AABTHzZgA0ABsA4AsP0D+WCrMAHmBImEED/eUAEPEKAC5Qr50AsAqkCpDX8AkABkALbxAGofAARVJrC0FzsPcAYFi0kLW+KgUAV7kGwvCmLQAABxcLbAPRD9IAig0JkADkmQEA4LAuGogXHQAAA85gLntAGOMAxBSD0AEJMAYAd4AXCTAANDAAdEtwBTKQBF8AAAlYME6EAQMAotMEAgADIzAAAAlQB/81lpIA/wAEqUAkrQMAHIMQGom3BCAA0wH6kgSD0L0A3QoHQNQQ0uAAC+zgAs7gDAgAgAb+iKqVe7kAW1APiCABUQsAOJ/bDVpgA2EAAAG0wKsQywkAczALZ9AJzuAAAiwgAObDU6AA6Q9CYAXqMAEALgAHwICzWYMADxoHtuyAAScA1gS+QIMIgAAAVtACPoABOzAAAVFQryEsAIsAdG4u8AL4W68AL6DCTNByJvAAuFaAADjQYggAMAE+IABgsAcATHAbWfOnGwAAtkF8bdzRBEAAELZEOwEUCwcAMqB4jDsMGXAAvy7gAssgAnwA4HR6EASWCwEAAQxBUXs4CIwACFTAwDNQAHoAIAW4hpk0cMYA7DBnLmQ2WUMAAzS8AzIgA0AA/+CzYvMAzuAAC4icyEAgeZkA0AQykAHfIgAAMhAAe9AIwIAAyIi8yIuUCQgABQSJfMpA8AAA8NNyrmECviAACZLgCwKwA2AA8ACpMHkzkQkAD6AOkhDJigwABoqXA00QB7MAcsq/LMYOIQYAauADL9ACLeAAAgiAAmuMqkEA0Kqw8Az18EAAP7DN1xNHEAAACzNQCOnVx6sAsAzOzA7zwQ8ATUB3AuFIlfQASEP8D+5cSXgAQCQttwdxkM8Ae3BQTPDOP+sAnRH2zpMHGcIAjAd7AAL5HAcAILAH69YxYTEAz5GUbSGSA1cAgG30PFwPkQMA0rADPsAOzgwAzfybCAqgB4IAMA4zAAungAsAXPQETxBHzxAADm4wDkGgBz0A/4CNa9AF5twAAi8Axhk8m7IAswRAHdSbw0gAQh3Uf5QDNMcABOc5c0VX1EAAHRY50NRF/UcAjDRESs0E58MA1Ljx01PNFlEA7dRUndHVIAAAHe3MLUAEZ1AAA+jwCuSgB4UAYNJuEA6nMNcA4QDTqCDOt/AACokwByKwAdwAcM4+sANxcJ4AQw0SUR3WG5EAA4pddIgtFGIAYA0CAAfs8AIAzayPJUBvPUAADkcQBIWACp4A7dmFUAhHMFMA61UDQxABE6AA0ywAB4K91AMABCyR8dg7kAEAAEDZPrwMUcAABYuQCK7QA7cAcATADdy3QA4ArwANiwANSFAAgzqNpxggA3EA0EevDduxXQ0AQCAJPsACto0AxstwATeARW0A/wANsiAL0PAA3WiABDzwDZ0A0AKTzQI+EL4AILDURifd3SEARA8gALTNAuwAkN8vMAEemg4Av9AFQ9AFZ/AACzywDVbQwy8AwA4sAAAZAAwAARAIWR3d8p0AMplgDWAALgAAwAL4PdnOIAwAy0AEII4ANMAAnwmu4AxuAkAA8NznU9gT/iYAslMNpAAEJoAAAT6Q4Rue3zgAnt8aDgAzLAAAKa7O89LYLS4AIlGdCdUQCAEAIAMmsA4Z4AMANQ4AUM7jPpAAAetgApv83C4AdAXsPOTAUuQAV6AKpPCsQLAAA8AgAGb+yZMA3GiBAORaLuQAXI4pi50JV/AA5aqgCk8KAqQAAAKBoArqfD4Ac66+Ev7mmNIA1HI+5+syRHMAIO4rgC7ojF4AEIp92IxddIoA3eiUXumWfukAmJ7pmr7pnB4AEAA7'
$AutoIt_Logo = _Base64Decode($AutoIt_Logo)
Local $tSource = DllStructCreate('byte[' & BinaryLen($AutoIt_Logo) & ']')
DllStructSetData($tSource, 1, $AutoIt_Logo)
Local $tDecompress
_WinAPI_LZNTDecompress($tSource, $tDecompress)
$tSource = 0
Return Binary(DllStructGetData($tDecompress, 1))
EndFunc ;==>AutoIt_Logo

Func Merlin()
Local $Merlin
$Merlin &= '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'
$Merlin &= 'OZ54QIDDNkMgcVa9lHDvBwQEII8AgJTwgB0gM0LrCTzIYIo5eqSwRAgQpPKKBFNk45QxU9grQSpePNBAAvYAckAJhgT/Me0G2DhhxwMQXDGLEEdssccm1dSjwAWAOJWP1GsHAUoKLOAiAAGAfAABDzFggI0VL8hTwgEh5KIKOCxgkkwwCqzd9lD1XKG2AvXU0kEf65RiD+d7LwHHCBj8wEPPPYsgzO6DYOLwvb3o1AwuqdwbDSCLALNFKJvrvXcKJzABxxQ9AwKIACLkMUwfHUACgU8SQBA9TJu8fy8BS3BRxg0JGJA38iFIhCAYcADzAYIA9hDAEgrghlgIIgQPs9cUQPASKDQAEK94xQU+IAB9+EEK+gjAA37nPa354AAESOEBE2iAFKTDBwnImk8uIAAtgOsk14DBGlpggFQcwAAzGEIB/xjAgAgIIAQh8N4Bp2APbqWQhQxoQToYIAAIlGACj1jDGm6IQxjokAcG8MCqBlCAASTgAYK4QhLNRwABuPF3bTTAAwbgh0dM4AFQgMYadMhFlCTiC87gRTh80AI/BKAABQiACEyRDDWu0I1uTKEADGCALWjhEUawBS9EsQYy9BEliDhFIVCAAmV8oQD6KEADFAkJVSgiBJKkJCTdKII9uIALjyDDKNsAh6y0hgp0gEMDBnCNRNwgFLmYxSweKUsB5AN9odCDC4iQDnLg4DiKIgoSspCBFWQgDvIgphkSUYoOzCIZv3OjLEUQDEWAAhQdWAcR4ODNFVSAHKgaChLekf+BDNThFqMYwASkwYYOdEAIwRCBOilJSXsoQhUdoAEQhtGINERhBbdAgVOQgALWkCEDUBhAA1hAAyEIQRiQZChDH2AARUSUBtJoRBTYsYI4oGA5Q7GGP7LzhSTgogAzWMAiPOEJA6T0AUhl6BKEIQSJSmEP7BhCGvxRCKdQog47hQY0GABULTTAAyJg6UojgNQHiOAFQtCDHtjAg058oQ7kSII3skKJRtAiCZxApBa0UIAEkHWsESArS9vxggSMQg9wSActCqGLuc7FDsDgxDV24AO+BuCvcoxAAjYb2Ah4wAMJ8EAlYjEEdXDiHogIzDDigYw+mIEFPkikX8u62QD/bPa2tdVHA4aADH54ZC6IYEE/+vAJcLghtgywLVKXkIAAONe5t3UuV4fAiXT8di6XQMYnzrEFNPA1uZu9Ai48EAB93OC5zyViAaSgjk5cNytg4IcdzDAIHlR2iLb1QB4wUQkSVGIR50UvA8iohXLkMjAqSAcXCmAGO6DBAmVMrn5pkIsjAMETAZYuVwtQYGc8IjDGMMEEGpACalgAwikYgD5G4QkgsIEGpbgBEZMbAPVy2AgWSAeIRVyACczAAnwtgDxKAYQOsOHIeZDxjGes13RYAFdzMYQFJkDlGfghyAyoxB7McGQagKMS+mBAmJkM1HQYQQsI3usMZqCFKyNyacCyWAQbznEEM7hAyWSeQJuvoALNwAIKUNBCC6b85hvAgQ2J2MEO5LFkG0/AAipILXNOAQYLxBaRN1hEOxqgygWseQYNaEBQfZCCFHxIBW8otTwYPYAUGGITIIi1rGP9BplB6da4TkhAAAA7'
Return Binary(_Base64Decode($Merlin))
EndFunc ;==>Merlin

Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000)
Local $tBuffer, $Ret
$tOutput = 0
$tBuffer = DllStructCreate('byte[' & $iBufferSize & ']')
If @error Then Return SetError(1, 0, 0)
$Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0)
If @error Then Return SetError(2, 0, 0)
If $Ret[0] Then Return SetError(3, $Ret[0], 0)
$tOutput = DllStructCreate('byte[' & $Ret[6] & ']')
If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then
$tOutput = 0
Return SetError(4, 0, 0)
EndIf
Return $Ret[6]
EndFunc ;==>_WinAPI_LZNTDecompress

Func _WinAPI_MoveMemory($pDestination, $pSource, $iLenght)
DllCall('ntdll.dll', 'none', 'RtlMoveMemory', 'ptr', $pDestination, 'ptr', $pSource, 'ulong_ptr', $iLenght)
If @error Then Return SetError(5, 0, 0)
Return 1
EndFunc ;==>_WinAPI_MoveMemory

Func _Base64Decode($input_string)
Local $struct = DllStructCreate("int")
Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
$a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
Return DllStructGetData($a, 1)
EndFunc ;==>_Base64Decode
It works, but static picture control is better!

Regards,

João Carlos.

Edited by JScript

http://forum.autoitbrasil.com/ (AutoIt v3 Brazil!!!)

Somewhere Out ThereJames Ingram

somewh10.png

dropbo10.pngDownload Dropbox - Simplify your life!
Your virtual HD wherever you go, anywhere!

Posted

@JScript

It worked! Thanks! :idiot:

@UEZ

This one;)

#include-once
#include <Memory.au3>
#include <GDIPlus.au3>

; #FUNCTION# ====================================================================================================================
; Name...........: _GDIPlus_ImageLoadFromHGlobal
; Description ...: Creates an Image object based on movable HGlobal memory block
; Syntax.........: _GDIPlus_ImageLoadFromHGlobal($hGlobal)
; Parameters ....: $hGlobal - Handle of a movable HGlobal memory block
; Return values .: Success - Pointer to a new Image object
; Failure - 0 and either:
; |@error and @extended are set if DllCall failed:
; | -@error = 1 if could not create IStream
; | -@error = 2 if DLLCall to create image failed
; |$GDIP_STATUS contains a non zero value specifying the error code
; Author ........: ProgAndy
; Modified.......:
; Remarks .......: After you are done with the object, call _GDIPlus_ImageDispose to release the object resources.
; The HGLOBAL will be owned by the image and freed automatically when the image is disposed.
; Related .......: _GDIPlus_ImageLoadFromStream, _GDIPlus_ImageDispose
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _GDIPlus_ImageLoadFromHGlobal($hGlobal)
Local $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $hGlobal, "bool", True, "ptr*", 0)
If @error Or $aResult[0] <> 0 Or $aResult[3] = 0 Then Return SetError(1, @error, 0)
Local $hImage = DllCall($ghGDIPDll, "uint", "GdipLoadImageFromStream", "ptr", $aResult[3], "int*", 0)
Local $error = @error
Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
Local $aCall = DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $aResult[3], "dword", 8 + 8 * @AutoItX64, "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT))
If $error Then Return SetError(2, $error, 0)
If $hImage[2] = 0 Then Return SetError(3, 0, $hImage[2])
Return $hImage[2]
EndFunc ;==>_GDIPlus_ImageLoadFromHGlobal


; #FUNCTION# ====================================================================================================================
; Name...........: _MemGlobalAllocFromBinary
; Description ...: Greates a movable HGLOBAL memory block from binary data
; Syntax.........: _MemGlobalAllocFromBinary($bBinary)
; Parameters ....: $bBinary - Binary data
; Return values .: Success - Handle of a new movable HGLOBAL
; Failure - 0 and set @error:
; |1 - no data
; |2 - could not allocate memory
; |3 - could not set data to memory
; Author ........: ProgAndy
; Modified.......:
; Remarks .......:
; Related .......: _MemGlobalAlloc, _MemGlobalFree, _MemGlobalLock
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _MemGlobalAllocFromBinary(Const $bBinary)
Local $iLen = BinaryLen($bBinary)
If $iLen = 0 Then Return SetError(1, 0, 0)
Local $hMem = _MemGlobalAlloc($iLen, $GMEM_MOVEABLE)
If @error Or Not $hMem Then Return SetError(2, 0, 0)
DllStructSetData(DllStructCreate("byte[" & $iLen & "]", _MemGlobalLock($hMem)), 1, $bBinary)
If @error Then
_MemGlobalUnlock($hMem)
_MemGlobalFree($hMem)
Return SetError(3, 0, 0)
EndIf
_MemGlobalUnlock($hMem)
Return $hMem
EndFunc ;==>_MemGlobalAllocFromBinary

; #FUNCTION# ====================================================================================================================
; Name...........: _MemGlobalAllocFromMem
; Description ...: Greates a movable HGLOBAL memory block and copies data from memory
; Syntax.........: _MemGlobalAllocFromMem($pSource, $iLength)
; Parameters ....: $pSource - Pointer to memorybloc to copy from
; $iLength - Length of data to copy
; Return values .: Success - Handle of a new movable HGLOBAL
; Failure - 0 and set @error:
; |1 - invalid $pSource
; |2 - invalid $iLength
; |3 - could not allocate memory
; Author ........: ProgAndy
; Modified.......:
; Remarks .......:
; Related .......: _MemGlobalAlloc, _MemGlobalFree, _MemGlobalLock
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _MemGlobalAllocFromMem($pSource, $iLength)
If Not $pSource Then Return SetError(1, 0, 0)
If $iLength < 1 Then Return SetError(2, 0, 0)
Local $hMem = _MemGlobalAlloc($iLength, $GMEM_MOVEABLE)
If @error Or Not $hMem Then Return SetError(3, 0, 0)
_MemMoveMemory($pSource, _MemGlobalLock($hMem), $iLength)
_MemGlobalUnlock($hMem)
Return $hMem
EndFunc ;==>_MemGlobalAllocFromMem

; #FUNCTION# ====================================================================================================================
; Name...........: _GUICtrlStatic_SetImage
; Description ...: Sets a HBITMAP to a static control like image or label
; Syntax.........: _GUICtrlStatic_SetImage($iCtrlId, $hBitmap)
; Parameters ....: $iCtrlId - CtrlId or handle of Control in the current process
; $hBitmap - Pointer top Windows HBITMAP
; Return values .: Success - 1
; Failure - 0 and set @error:
; |1 - invalid $pSource
; |1 - invalid $pSource
; Author ........: ProgAndy, Zedna
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _GUICtrlStatic_SetImage($iCtrlId, $hBitmap)
Local Const $STM_SETIMAGE = 0x0172
Local Const $IMAGE_BITMAP = 0
Local Const $SS_BITMAP = 0xE
Local Const $GWL_STYLE = -16

If IsHWnd($iCtrlId) Then
If WinGetProcess($iCtrlId) <> @AutoItPID Then Return SetError(1,0,0)
Else
$iCtrlId = GUICtrlGetHandle($iCtrlId)
If Not $iCtrlId Then Return SetError(2,0,0)
EndIf
; set SS_BITMAP style to control
Local $oldStyle = DllCall("user32.dll", "long", "GetWindowLong", "hwnd", $iCtrlId, "int", $GWL_STYLE)
If @error Then Return SetError(3, 0, 0)
DllCall("user32.dll", "long", "SetWindowLong", "hwnd", $iCtrlId, "int", $GWL_STYLE, "long", BitOR($oldStyle[0], $SS_BITMAP))
If @error Then Return SetError(4, 0, 0)
Local $oldBmp = DllCall("user32.dll", "handle", "SendMessageW", "hwnd", $iCtrlId, "int", $STM_SETIMAGE, "wparam", $IMAGE_BITMAP, "handle", $hBitmap)
If @error Then Return SetError(5, 0, 0)
If $oldBmp[0] Then _WinAPI_DeleteObject($oldBmp[0])
Return 1
EndFunc

_GDIPlus_Startup()
$s = Binary(FileRead(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\Examples\GUI\Torus.png"))
$hMem = _MemGlobalAllocFromBinary($s)
$hImage = _GDIPlus_ImageLoadFromHGlobal($hMem)
$gui = GUICreate("Just draw the created image", 300, 300)
GUISetState()
$hGRaph = _GDIPlus_GraphicsCreateFromHWND($gui)
_GDIPlus_GraphicsDrawImage($hGRaph, $hImage, 5, 5)
_GDIPlus_GraphicsDispose($hGRaph)


Do
Until GUIGetMsg() = -3

WinSetTitle($gui, "", "Now using _GUICtrlStatic_SetImage")
_WinAPI_RedrawWindow($gui)

$iLabel = GUICtrlCreateLabel("", 0, 0, 193, 184)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GUICtrlStatic_SetImage($iLabel, $hBitmap)

Do
Until GUIGetMsg() = -3
Posted (edited)

@JScript

It worked! Thanks! :idiot:

@UEZ

This one;)

; #FUNCTION# ====================================================================================================================
; Name...........: _GUICtrlStatic_SetImage
; Description ...: Sets a HBITMAP to a static control like image or label
; Syntax.........: _GUICtrlStatic_SetImage($iCtrlId, $hBitmap)
; Parameters ....: $iCtrlId - CtrlId or handle of Control in the current process
; $hBitmap - Pointer top Windows HBITMAP
; Return values .: Success - 1
; Failure - 0 and set @error:
; |1 - invalid $pSource
; |1 - invalid $pSource
; Author ........: ProgAndy, Zedna
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _GUICtrlStatic_SetImage($iCtrlId, $hBitmap)
Local Const $STM_SETIMAGE = 0x0172
Local Const $IMAGE_BITMAP = 0
Local Const $SS_BITMAP = 0xE
Local Const $GWL_STYLE = -16

If IsHWnd($iCtrlId) Then
If WinGetProcess($iCtrlId) <> @AutoItPID Then Return SetError(1,0,0)
Else
$iCtrlId = GUICtrlGetHandle($iCtrlId)
If Not $iCtrlId Then Return SetError(2,0,0)
EndIf
; set SS_BITMAP style to control
Local $oldStyle = DllCall("user32.dll", "long", "GetWindowLong", "hwnd", $iCtrlId, "int", $GWL_STYLE)
If @error Then Return SetError(3, 0, 0)
DllCall("user32.dll", "long", "SetWindowLong", "hwnd", $iCtrlId, "int", $GWL_STYLE, "long", BitOR($oldStyle[0], $SS_BITMAP))
If @error Then Return SetError(4, 0, 0)
Local $oldBmp = DllCall("user32.dll", "handle", "SendMessageW", "hwnd", $iCtrlId, "int", $STM_SETIMAGE, "wparam", $IMAGE_BITMAP, "handle", $hBitmap)
If @error Then Return SetError(5, 0, 0)
If $oldBmp[0] Then _WinAPI_DeleteObject($oldBmp[0])
Return 1
EndFunc

If you have a closer look to _GUICtrlStatic_SetImage() you will see that it is more or less the same I did except to set it for labels.

Here the shorten example with a label control instead of picture control:

;coded by UEZ 2012
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <Memory.au3>

_GDIPlus_Startup()
Global Const $IMAGE_BITMAP = 0
Global Const $STM_SETIMAGE = 0x0172
Global $msg
Global Const $hGUI = GUICreate("Test", 600, 250)
Global Const $idLogo = GUICtrlCreateLabel("", 215, 20, 169, 68, $SS_BITMAP)
Global $hBmp, $hBmp_Logo

If @OSBuild < 6000 Then
    $hBmp = Load_BMP_From_Mem(_Logo4_GIF())
    $hBmp_Logo = ConvertBitmap($hBmp)
    _GDIPlus_BitmapDispose($hBmp)
Else
    $hBmp_Logo = Load_BMP_From_Mem(_Logo4_GIF(), True)
EndIf
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_Logo))
GUISetState()


While True
    Switch GUIGetMsg()
        Case $idLogo
            MsgBox(0, "Information", "Label was clicked!")
        Case $GUI_EVENT_CLOSE
            _WinAPI_DeleteObject($hBmp_Logo)
            GUIDelete($hGUI)
            _GDIPlus_Shutdown()
            Exit
    EndSwitch
WEnd

Func ConvertBitmap($hBitmap)
    Local $iButtonColor = _WinAPI_GetSysColor($COLOR_BTNFACE)
    $iButtonColor = 0x10000 * BitAND($iButtonColor, 0xFF) + BitAND($iButtonColor, 0x00FF00) + BitShift($iButtonColor, 16)
    Local $iWidth = _GDIPlus_ImageGetWidth($hBitmap), $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
    Local $hBitmap_New = $aResult[6]
    Local $hCtx_new = _GDIPlus_ImageGetGraphicsContext($hBitmap_New)
    Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000 + $iButtonColor)
    _GDIPlus_GraphicsFillRect($hCtx_new, 0, 0, $iWidth, $iHeight, $hBrush)
    _GDIPlus_GraphicsDrawImageRect($hCtx_new, $hBitmap, 0, 0, $iWidth, $iHeight)
    Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_New)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_BitmapDispose($hBitmap_New)
    _GDIPlus_GraphicsDispose($hCtx_new)
    Return $hHBitmap
EndFunc

;======================================================================================
; Function Name:        Load_BMP_From_Mem
; Description:            Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
;
; Parameters:            $bImage:        the binary string which contains any valid image which is supported by GDI+
; Optional:                  $hHBITMAP:        if false a bitmap will be created, if true a hbitmap will be created
;
; Remark:                    hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
;
; Requirement(s):        GDIPlus.au3, Memory.au3 and _GDIPlus_BitmapCreateDIBFromBitmap() from WinAPIEx.au3
; Return Value(s):    Success: handle to bitmap or hbitmap, Error: 0
; Error codes:            1: $bImage is not a binary string
;                                2: unable to create stream on HGlobal
;                                3: unable to create bitmap from stream
;
; Author(s):                UEZ
; Additional Code:    thanks to progandy for the MemGlobalAlloc and tVARIANT lines
; Version:                    v0.96 Build 2011-31-12 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
    If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
    Local $declared = True
    If Not $ghGDIPDll Then
        _GDIPlus_Startup()
        $declared = False
    EndIf
    Local $aResult
    Local Const $memBitmap = Binary($bImage) ;load image  saved in variable (memory) and convert it to binary
    Local Const $len = BinaryLen($memBitmap) ;get length of image
    Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory  ($GMEM_MOVEABLE = 0x0002)
    Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
    Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
    DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
    _MemGlobalUnlock($hData) ;decrements the lock count  associated with a memory object that was allocated with GMEM_MOVEABLE
    $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
    If @error Then SetError(2, 0, 0)
    Local Const $hStream = $aResult[3]
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    If @error Then SetError(3, 0, 0)
    Local Const $hBitmap = $aResult[2]
    Local $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
    DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
                                           "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
    $tMem = 0
    $tVARIANT = 0
    If $hHBITMAP Then
        Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
        _GDIPlus_BitmapDispose($hBitmap)
        If Not $declared Then _GDIPlus_Shutdown()
        Return $hHBmp
    EndIf
    If Not $declared Then _GDIPlus_Shutdown()
    Return $hBitmap
EndFunc   ;==>Load_BMP_From_Mem

Func _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap)
    Local $tBIHDR, $Ret, $tData, $pBits, $hResult = 0
    $Ret = DllCall($ghGDIPDll, 'uint', 'GdipGetImageDimension', 'ptr', $hBitmap, 'float*', 0, 'float*', 0)
    If (@error) Or ($Ret[0]) Then Return 0
    $tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $Ret[2], $Ret[3], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
    $pBits = DllStructGetData($tData, 'Scan0')
    If Not $pBits Then Return 0
    $tBIHDR = DllStructCreate('dword;long;long;ushort;ushort;dword;dword;long;long;dword;dword')
    DllStructSetData($tBIHDR, 1, DllStructGetSize($tBIHDR))
    DllStructSetData($tBIHDR, 2, $Ret[2])
    DllStructSetData($tBIHDR, 3, $Ret[3])
    DllStructSetData($tBIHDR, 4, 1)
    DllStructSetData($tBIHDR, 5, 32)
    DllStructSetData($tBIHDR, 6, 0)
    $hResult = DllCall('gdi32.dll', 'ptr', 'CreateDIBSection', 'hwnd', 0, 'ptr', DllStructGetPtr($tBIHDR), 'uint', 0, 'ptr*', 0, 'ptr', 0, 'dword', 0)
    If (Not @error) And ($hResult[0]) Then
        DllCall('gdi32.dll', 'dword', 'SetBitmapBits', 'ptr', $hResult[0], 'dword', $Ret[2] * $Ret[3] * 4, 'ptr', DllStructGetData($tData, 'Scan0'))
        $hResult = $hResult[0]
    Else
        $hResult = 0
    EndIf
    _GDIPlus_BitmapUnlockBits($hBitmap, $tData)
    Return $hResult
EndFunc   ;==>_GDIPlus_BitmapCreateDIBFromBitmap

Func _Logo4_GIF($bSaveBinary = False)
    Local $Logo4_GIF
    $Logo4_GIF &= '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'
    $Logo4_GIF &= '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'
    $Logo4_GIF &= '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'
    $Logo4_GIF &= 'P5YKsx5gSJhBA/3lEPEKAC5Qr52wCqQKkNfwCQZAC28QBqHwRVJrC0FzsPdgWLSQtb4qBVe5BsLwpi0ABxcLbAPRD9KKDQmQAOSZAeCwLhqIFx0AA85gLntAGOPEFIPQAQkwBneAFwkwADQwdEtwBTKQBF8ACVgwToQBA6LTBAIAAyMwAAlQB/81lpL/AASpQCStAxyDEBqJtwQg0wH6kgSD0L3dCgdA1BDS4Avs4ALO4AwIgAb+iKqVe7lbUA+IIAFRCzif2w1aYANhAAG0wKsQywlzMAtn0AnO4AIsIADmw1Og6Q9CYAXqMAEuAAfAgLNZgw8aB7bsgAEn1gS+QIMIgABW0AI+gAE7MAFRUK8hLACLdG4u8AL4W68voMJM0HIm8LhWgAA40GIIMAE+IABgsAdMcBtZ86cbALZBfG3c0QRAELZEOwEUCwcyoHiMOwwZcL8u4ALLIAJ84HR6EASWCwEBDEFRezgIjAhUwMAzUAB6IAW4hpk0cMbsMGcuZDZZQwM0vAMyIANA/+CzYvMAzuALiJzIQCB5mdAEMpAB3yIAMhAAe9AIwIDIiLzIi5QJCAUEiXzKQPAA8NNyrmECviAJkuALArADYPAAqTB5M5EJD6AOkhDJigwGipcDTRAHs3LKvyzGDiEGauADL9ACLeACCIACa4yqQdCqsPAM9fBAP7DN1xNHEAALM1AI6dXHq7AMzswO88EPTUB3AuFIlfRIQ/wP7lxJeEAkLbcHcZDPe3BQTPDOP+udEfbOkwcZwowHewAC+RwHILAH69YxYTHPkZRtIZIDV4Bt9DxcD5ED0rADPsAOzgzN/JsICqAHgjAOMwALp4ALXPQETxBHzxAObjAOQaAHPf+AjWvQBebcAi8Axhk8m7KzBEAd1JvDSEId1H+UAzTHBOc5c0VX1EAdFjnQ1EX9R4w0RErNBOfD1Ljx01PNFlHt1FSd0dUgAB3tzC1ABGdQA+jwCuSgB4Vg0m4QDqcw1+EA06ggzrfwCokwByKwAdxwzj6wA3FwnkMNElEd1huRA4pddIgtFGJgDQIAB+zwAs2sjyVAbz1ADkcQBIWACp7t2YVQCEcwU+tVA0MQAROg0ywAB4K91AMELJHx2DuQAQBA2T68DFHABYuQCK7QA7dwBMAN3LdADq8ADYsADUhQgzqNpxggA3HQR68N27FdDUAgCT7AAraNxstwATeARW3/AA2yIAvQ8N1ogAQ88A2d0AKTzQI+EL4gsNRGJ93dIUQPIAC0zQLskN8vMAEemg6/0AVD0AVn8As8sA1W0MMvwA4sAAAZAAwBEAhZHd3ynTKZYA1gAC4AwAL4PdnOIAzLQAQgjgA0wJ8JruAMbgJA8NznU9gT/iayUw2kAAQmgAE+kOEbnt84nt8aDgAzLAAprs7z0tgtLiJRnQnVEAgBIAMmsA4Z4AM1DgBQzuM+kAHrYAKb/NwudAXsPOTAUuRXoAqk8KxAsAPAIABm/smT3GiBAORaLuRcjimLnQlX8OWqoApPCgKkAAKBoArqfD5zrr4S/uaY0tRyPufrMkRzIO4rgC7ojF4Qin3YjF10it3olF7pln7pmJ7pmr7pnB4QADs='
    Local $bString = Binary(_Base64Decode($Logo4_GIF))
    If $bSaveBinary Then
        Local $hFile = FileOpen(@ScriptDir & "logo4.gif", 18)
        FileWrite($hFile, $bString)
        FileClose($hFile)
    EndIf
    Return  $bString
EndFunc   ;==>_Logo4_GIF

Func _Base64Decode($sB64String)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $sB64String, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $sB64String, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
EndFunc   ;==>_Base64Decode

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

  • 4 weeks later...
Posted

Hi UEZ, is it possible to embed an image in a ToolBar control, I use the following but it doesn´t work:

; Toolbar
; Create Toolbar
$hToolBar = _GUICtrlToolbar_Create($hGui, $TBSTYLE_FLAT + $TBSTYLE_LIST)
Local $iTBstyle = _GUICtrlToolbar_GetExtendedStyle($hToolBar)
_GUICtrlToolbar_SetExtendedStyle($hToolBar, BitOR($iTBstyle, $TBSTYLE_EX_DRAWDDARROWS))
; Image list
_GUICtrlToolbar_SetImageList($hToolBar, $hImlLarge)
; Add buttons to the Toolbar
Global $hMemImage = Load_BMP_From_Mem(Binary(_Base64Decode(_backico())))
;_GUICtrlToolbar_AddButton($hToolBar, $idBackButton,_GetIcon_GetIconIndex(@ScriptDir & "resback.ico"), 0, BitOR($BTNS_AUTOSIZE, $BTNS_DROPDOWN), $TBSTATE_INDETERMINATE)
_GUICtrlToolbar_AddButton($hToolBar, $idBackButton,$hMemImage, 0, BitOR($BTNS_AUTOSIZE, $BTNS_DROPDOWN), $TBSTATE_INDETERMINATE)
_GUICtrlToolbar_SetButtonText($hToolBar, $idBackButton, "Back")
Posted (edited)

Something like that?

 

#include <GuiReBar.au3>
#include <Constants.au3>
#include <GuiToolbar.au3>
#include <GDIPlus.au3>

_GDIPlus_Startup()

Enum $idSave = 1500, $idCopy, $idSend, $idUndo, $idPen, $idHighlighter, $idRectangle, $idEllipse, $idArrow, $idColor, $idText, $idText_Conf, $idFX, $idPen_Size
$TB_Style = BitOR($TBSTYLE_FLAT, $TBSTYLE_TRANSPARENT, $CCS_NORESIZE, $CCS_NOPARENTALIGN)

$hGUI = GUICreate("Toolbar with icons from memory", 740, 200)
$hHBITMAP_Icons = _GDIPlus_BitmapCreateFromMemory(_ImageEditor_ToolbarIcons(), True)

$hToolbar = _GUICtrlToolbar_Create($hGUI, $TB_Style)
_GUICtrlToolbar_SetBitmapSize($hToolbar, 24, 24)
_GUICtrlToolbar_AddBitmap($hToolbar, 1, 0, $hHBITMAP_Icons)
$hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

Global $aStrings[14]
$aStrings[0] = _GUICtrlToolbar_AddString($hToolbar, "  &Save  ")
$aStrings[1] = _GUICtrlToolbar_AddString($hToolbar, "  &Copy  ")
$aStrings[2] = _GUICtrlToolbar_AddString($hToolbar, "  S&end  ")
$aStrings[3] = _GUICtrlToolbar_AddString($hToolbar, "&Undo")
$aStrings[4] = _GUICtrlToolbar_AddString($hToolbar, "  &Pen  ")
$aStrings[5] = _GUICtrlToolbar_AddString($hToolbar, "Pen S&ize")
$aStrings[6] = _GUICtrlToolbar_AddString($hToolbar, "&Highlighter")
$aStrings[7] = _GUICtrlToolbar_AddString($hToolbar, "&Rectangle")
$aStrings[8] = _GUICtrlToolbar_AddString($hToolbar, "&Ellipse")
$aStrings[9] = _GUICtrlToolbar_AddString($hToolbar, "&Arrow")
$aStrings[10] = _GUICtrlToolbar_AddString($hToolbar, "C&olor")
$aStrings[11] = _GUICtrlToolbar_AddString($hToolbar, "  &Text  ")
$aStrings[12] = _GUICtrlToolbar_AddString($hToolbar, "Confi&g")
$aStrings[13] = _GUICtrlToolbar_AddString($hToolbar, "F&X")

_GUICtrlToolbar_AddButton($hToolbar, $idSave, 2, $aStrings[0], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idCopy, 3, $aStrings[1], $BTNS_AUTOSIZE)

_GUICtrlToolbar_AddButton($hToolbar, $idSend, 4, $aStrings[2], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idUndo, 0, $aStrings[3], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idHighlighter, 6, $aStrings[6], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idPen, 5, $aStrings[4], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idPen_Size, 8, $aStrings[5], $BTNS_DROPDOWN + $BTNS_WHOLEDROPDOWN + $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idRectangle, 9, $aStrings[7], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idEllipse, 10, $aStrings[8], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idArrow, 11, $aStrings[9], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idColor, 12, $aStrings[10], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idText, 13, $aStrings[11], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButton($hToolbar, $idText_Conf, 14, $aStrings[12], $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)

_GUICtrlToolbar_AddButton($hToolbar, $idFX, 15, $aStrings[13], $BTNS_DROPDOWN + $BTNS_WHOLEDROPDOWN + $BTNS_AUTOSIZE)
_GUICtrlToolbar_AddButtonSep($hToolbar)
GUISetState()
_GUICtrlRebar_AddToolBarBand($hReBar, $hToolbar, "", 0)

Do
Until GUIGetMsg() = -3

_WinAPI_DeleteObject($hHBITMAP_Icons)
_GDIPlus_Shutdown()
GUIDelete()
Exit

Func _ImageEditor_ToolbarIcons()
    Local $ImageEditor_Icons
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= 'mD79Rfz5zw/C65UPB/7J7LwJTp8fXNkgZ9UXn82gYOh/yx9+OgnsF0lThpOTsjZLUdSRHBgniQJEUUBRVl+c578OosCngY/jup8LQgh3wvAhJ047ZfyDq3/YeBUAunrLLvHvz/7t1TEnnXxec8zlXl8DvPpNI5pTWbCJF0Pc3yMjtRCm3YZo4wrUFT2AtnAUeXl5/ID+/e+qqan9es/evRsAwOf3lZ577mnvLPh8yRCX2+fXVGV6Fzl0YgRljCmmaXbLM0cC6Z7g3lO+FgSBHEJmPmxQ2nX80WuejIFZNmzDgk8UCCQBtqH/+KVME2rjXpitTaDJJMCLEHyZcBb0hSMnD2Bd193GsMoyUl8f+ceM68yND7+aWN1Niza91nHiiHPcDzyAFdt3YojXC7/fj4qhg9DQ2Io5c+Zh8OBKiKKIQCCIYDAIwiTANpEQJPhCmUiYpgeAH0C4JwEYhgXLssEoQ7gt0gnoB0b/+48JO0QqwBiDTS1YpnnIgf9i1S6kLALF4mAyYPop/QEAp59+OpqbmmAYBnZVVx/zXT9z5sxQQUHBX7Kzs387ePBgZGenSxCaph1wUbs0PZfLhfHjx6OkpMS/atWqy1paWnIJIf988sknF95///3q8UoQD/3r/VWVJwzmGqp3YkvVWmYq6vZAVtZLPwn8azL+RDzDH2XSGRSplYTJ+0DkJCDHKVM0To0Jz1umuer9v79wtMDvAnC5JIr3lQ4uK8sfUAJbM2DKOmepOkBtCIxAlDzw9vPnFPUpmqrL2tTm+uaWRbPe/vS0ey69Yc67m9wnjcgfc8KQHAcTgVDQWfLbXw69QeC5IRxhDosyuJwSMvwklFSMf0iW6Sr7YoEWzCyalRx7YtAXCqJ/aT/opo3alia4vRzijbLdFol90pFM3rFfpZHC49EgSeZxDaAoiuD5Q2d3ui7hnnuexJw5N+P665/DTTe9gmHDdoDjeh/j86UwYcJqTJiwGmedtRDTp7+Cl176HUaPXoOrr56/f4ZCU0lv1QN/eCWenT/B6fPBUmRQTYVQUOxc+593ZzDGUPa7P/63SECwKJu+ozn65CrqDhZyHE50paNiRVHREU1YKUVTiwty3G4H4w3LhGlZAAPiiaS6a3ftrtrahm8dksg6gyVb1ak0+1Ovu6m5GUL4PbTUrIRdfAdcueNg81m44PxzMXbsGGiagQeeXY1Nmyny83JAOJJz0klj/qe5peUiXdetaWdMneHQm4aEvIwlNLK9J/h3PpPUMAy5KwPoirwPJgd1bV2SDGMMoijCMAwwxojD4eD2B/WuPi3L6pUtdBaKD0kOhyMEAZQRZtnMtihASDrWT29M66hFYu86ME1n0ShFS6sNw6DI8zSw/JqNEDMKWGD4yeBcYrcsNGnicHHlmrqXf3um84S5X2o2AAh5OY86r7ic8KEQtu/cixUrf0DQn4n8/D6or6tHMJSJjAwnKirK4fF4oaoMlkkRjcVACAMVBORJUmZnkY7bP32klAEmkJ2TmY76e2j8B4v8968B9FKJGEAt64CIv+s9owzTxpSBgXUOeu/98gsK0u6SnTuP6a5/8MEHK4cMGfJOQUHBoAEDBoDjOKiqesQUruvi5ufn45xzzkFVVdXU7du3D02lUrMBvADgmAur595+b0nlCWPH9vEKeGD+m0yOx5N5GRlzfkr0T3c77iO+kY8y5y8okddykOsYFBlQ4oCicKmE9Pr1P1wz992/PXvEvl76wywuJ5j1K0EQHuzTv29lybAywKagmglbMWBrJphhgxkWqE0BxkDBYHOAoiuobarJq2touAbADU2tcvT9L3ffqBv2y+Mq80+FyAUJw2MMhDCOAyEc/H4XGLXgtmiArW15pl9CY9ltOzz7TBPB6VdBVjWYlo3q6mq0tUehy9oqqlm3MMZaflbNf8GCM/Hqqzdi2LCNuO++p1FS0njEY0aN2ogPP/wVZsy4D089dQ/cbgUXX/xhLwnC6VILxk74rGXxogl8'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= 'Ckea0HVoT6BgoaxsByKR4JF2JaJoDbj5jucogA1/nTmTGbqLJ2nNkQfAm6azdvasGZQx9L/8mvlV9/z+pdCkUz4vv+HWf/bOrCFSm52Z0gzSEo1DMDmUa+34VZGEMo8A22bQVBmp1t1IhZugcdmQcgdBdAXACxJAeIARSBIHHgzUtuEQJZfTIfXRYazpjKDtmtranaNOmHi2TW1kZgCqqqAgUwLAo00O4Mt1Gj7brKPQsR3nntIH/kAAazduxZIlK9BYsxtDa4s2xpPKuwcEKILgZTu/W9a4+vM7mWUkNE1LudweRiydMD0JHulCMKUUAbcDl/Q3kWg3YZk6YrEYioqKek0I8/l8sCyLMMb4g0lAhJDuDCA7O7vbMFJVVQXbtvHdd99h9OjRuPbaa1FTU4MXX3wRXbbU/Td0kvYB1xYA8bg4MnG0B18uTR5WS5AcXMBjIQwGly2H3YzBRQhcScXhFnm0Y/XqLK/PZw8YOzZSm5uzcNl3SwrlmtqQ1t4uUssiDk0XJNvijVicvjHvrcpLLvu165eXXiR9XxOu+JvcZ7h02VSx8ErXY0L9unhy87IVke/efpgZyvouMrBtG6IkgFAR7/3lUzjcHlCDgfAcYJNOPR/pKj9lsGm6cMxYWgogXUBOCCRJABjA2xwoOZQNlGLplpZeGUBxD4fQk3MXQbUIkiaHmMEhqvOIGRySJoeVD1QeNDKPDB9ekpg/H9zYsfA8+CD4HhE9A0BEwNIB06SgngzQU6dBKh+JwJMzsG/2bGTecguysrJ6OQqOJQNIJlsmRHdsOfur/3xEEm4H2/flp/HC/LwP582bt+9Y8CMvN+vksVcUv/7B3Cm00J/gWHIFg9od+cNOmaSxPefJdwLPvNGyaQ0izc34/pPPDtunZRiCaVlglMGiJhIdcaRiSYTdDgSyQwjmhSC5HCCE6yzmGqirqcH3P6xER6SjexxsakPRdUTi8r2fbVk065DABmTnuZyzs92ui8NJmVdNA1wn+GuGhQZDRhsxUZPvhzSuH0ZW5KNfgQ+EUT6a0C91OQSPKHA3AeTndQFlZHQgFgtC16XjJgBZdqO+vg8GDtxxNLsTUbQG3nzHcwzA1qdnziSG7uIB8ISkScAynE3/+MuMlg/f+a1Yu2eIPnDwhoNkqgFZUQdE4zKEqAyiUORnMhQ4CXiWduQBBLYjE2GuENl9RyKn71C4AtkAJ6aXQjBN8MyG1RnNyYpi2zaN91wzZ+/emh2Sw2aMgiQVHnVhDnUtDMQIw9YbULe3HiHHErQ5VDQ2imhobsFXS5ahfvcuBDNDKBtYiR3VTeZ+JUg0blm1GFtWf8eobXaeS6a2zWAoBFoKoBZcbld3EJjjlXDr6EzEyk7uBvOe8wJYZ72wZ7HWtu1ek8m6agDvvvsu3n333e7CsWVZEAQBbrcblmXB6/XC4/GgtbX1gDWCfpwHcHBZDjN+4yaa5BEGljrpP14PHxRN1s4v8Fop5nfI6GAmcRLKnABcAJytMs+pht2K+noHqqom54wbZ1FGUsKprppotL1ZMwyBUYtYJiOqahAfZajdtpN+seDLcZvXrt6rV07Lzhk3zm+uX63Gv/rHO2J2oavo13edKQ0748v2tx6402zZ+w4AjVEGGyZysvMRq07AMAFN0RFuioCAg8MhgYHAUAwYmgHbskFIWrsnFKCEguc5CF4e4CncATcgkLTD52DyBqOYODQbYLRb51+77keH0L2/OaWXQyhdJ+jy6jIAtJc+Hx00KGj5fHNyzz8fznPPBXj+gAwnEo5g6/Y6xGJJFBWWIBTKgicrF+5zzoX94j+wb98+BAIBCIJwHLiR4TcM+56AE3TVh2+x7H79DTehWzMzMp441r5KywZPzs7KwjlXruLe+gtlgwdQMDkGIidAFZ00tmd/8mnxaw/UVa2GkkhgzZdfHZ2kxGhX+T7t6bcolKQMLaki1hKGLzuEjMIsiILIWlta7PWbN/CxeJSkMzAGy7YhGxrC'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= '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'
    $ImageEditor_Icons &= 'PCKxXEUzXIpjXx+XAAACIklEQVSq56iutKrl6JaAkTRZJskyZiLDrIiRVq4MDSQvDgZM4QS97FwUeI5HLBtNpNB9vhWmoSMUjaGt6zgC/QIWoyCQqCLLnjy3+wWXpnklSdImDCNjMBYaHYuOBKOx9IRuiHhqAtF4EvFUCha3H8iQZ45PhJSUFL9W5ivbYZrmP8lU8qxLMeOBoejVDLOMuXJp3ZORU0XTqjfskArL1sgFvhpBJFUYCdjxIOOjnXGz79pBwc0fnOokQrKnF4kDKZtD2jEhRGjS/hsaGop27tz5EQD3w5iBF2JjhJDxpqamxmcuAKzc/Km/lxf9WOR/pZRfavm17+SRXZxbw5iBBsJBqXMtecyvEkSWfqL7KXVdApAPwAvAjf+YPCXHGJjjPGOOAS1Y97eiomJNaWnpIb/fv7a5uXnsf77z5EWdlmzbRvcLQTuOHWOHQ6EpcQ4xQ7YvHuLwn5rX3HPoQE4mmfAKm7slShUhiJYZTypWT49EAgHI6TRXBbgmUdOtuUxPbj7z5HmYrCjMtIXFLG5luGWnGeMDsbD93fV2Hjb0qT49DwCzbGtMpNB19jdwMyt52tMXwJ/XbiB/kRe+4sVksbdAohKRAAlC2ETTNFAqwTK5CIYjfDgUFrFYVCSTKYzFxtHZN4j+keBUIchs31+mlHLb5gsdp3ucMpGoXFpZA6q+BJsXTpsTEOmIwROhUxCiez72PT4+jlgsRp/Ety8uLub/AhIKBb23x+IGAAAAAElFTkSuQmCC'
    Return Binary(_Base64Decode($ImageEditor_Icons))
EndFunc   ;==>_ImageEditor_ToolbarIcons

Func _Base64Decode($input_string)
    Local $struct = DllStructCreate("int")
    Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
    Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
    $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
    If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
    Return DllStructGetData($a, 1)
EndFunc   ;==>_Base64Decode

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...