Code: Select all
Base64ToComByteArray( ByRef B64 ) { ; By SKAN / Created: 21-Aug-2017 / Topic: goo.gl/dyDxBN
Static CRYPT_STRING_BASE64 := 0x1
Local Rqd := 0, BLen := StrLen(B64), ByteArray := ""
If DllCall( "Crypt32.dll\CryptStringToBinary", "Str",B64, "UInt",BLen, "UInt",CRYPT_STRING_BASE64
, "UInt",0, "UIntP",Rqd, "Int",0, "Int",0 )
{
ByteArray := ComObjArray( 0x11, Rqd )
DllCall( "Crypt32.dll\CryptStringToBinary", "Str",B64, "UInt",BLen, "UInt",CRYPT_STRING_BASE64
, "Ptr",NumGet( ComObjValue( ByteArray ) + 8 + A_PtrSize ), "UIntP",Rqd, "Int",0, "Int",0 )
}
Return ByteArray
}
Code: Select all
Base64ImageData := "//////////////"
ByteArray := Base64ToComByteArray( Base64ImageData )
If IsObject( ByteArray )
; do something
Code: Select all
#NoEnv
#Warn
#SingleInstance, Force
Base64ImageData := "
( LTrim Join
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
)"
VectorImage := ComObjCreate( "WIA.Vector" )
VectorImage.BinaryData := Base64ToComByteArray( Base64ImageData )
Picture := VectorImage.Picture
VectorImage := ""
Base64ImageData := ""
hBM := Picture.Handle
Gui, Add, Picture,, HBITMAP:%hBM%
Gui, Show
Return ; // end of auto-execcute section //
Base64ToComByteArray( ByRef B64 ) { ; By SKAN / Created: 21-Aug-2017 / Topic: goo.gl/dyDxBN
Static CRYPT_STRING_BASE64 := 0x1
Local Rqd := 0, BLen := StrLen(B64), ByteArray := ""
If DllCall( "Crypt32.dll\CryptStringToBinary", "Str",B64, "UInt",BLen, "UInt",CRYPT_STRING_BASE64
, "UInt",0, "UIntP",Rqd, "Int",0, "Int",0 )
{
ByteArray := ComObjArray( 0x11, Rqd )
DllCall( "Crypt32.dll\CryptStringToBinary", "Str",B64, "UInt",BLen, "UInt",CRYPT_STRING_BASE64
, "Ptr",NumGet( ComObjValue( ByteArray ) + 8 + A_PtrSize ), "UIntP",Rqd, "Int",0, "Int",0 )
}
Return ByteArray
}
Other Links:
Scripts and Functions: WIA - Windows Image Acquisition (1.0.02.00 - 2015-05-03) by just me
Scripts and Functions: Base64 encoder/decoder for Binary data by SKAN
Other Utilities & Resources: WIA 2.0 for Windows XP (Windows Image Acquisition Automation Layer)