Nine 1,632 Posted October 30, 2020 Share Posted October 30, 2020 Recently someone ask about saving images into a text file. I found it interesting enough to spend some times on it. And felt it may be worth publishing it as an example script. This provide an alternative way to save/retrieve image from the well-known Base64 encoding. With this example you can save/retrieve image into/from file, but also into/from the inside of a script. I provided a simple tool to copy/paste the AutoIt code of an image into a script. Let me know if you want to add / change functionalities from it. expandcollapse popup#include <Constants.au3> #include <GDIPlus.au3> #include <ScreenCapture.au3> #include <File.au3> Opt("MustDeclareVars", 1) Const $SIZE = 600 Global $tImage ; This buffer must be declare for each image that you create _GDIPlus_Startup() Local $hBitMap = _ScreenCapture_Capture("", 50, 50, 50 + $SIZE - 1, 50 + $SIZE - 1, False) _WriteImageToText("Test.txt", $hBitMap, $SIZE, $SIZE, False) Local $hImage = _ReadImageFromText($tImage, "Test.txt", $SIZE, $SIZE, True) _GDIPlus_ImageSaveToFile($hImage, "Test.jpg") _GDIPlus_ImageDispose($hImage) $tImage = 0 ; recommended when GDI+ handle is not required anymore and you want to reuse the same buffer $hImage = _GDIPlus_ImageLoadFromFile("Capture.jpg") Local $aDim = _GDIPlus_ImageGetDimension($hImage) ConsoleWrite("Note this information to use into _ConvertStringToImage : Width = " & $aDim[0] & " / Height = " & $aDim[1] & @CRLF) Local $sImage = _WriteImageToText("", $hImage, $aDim[0], $aDim[1]) _ConvertStringtoAutoIt($sImage) ; At this stage you will have to paste clip board in a "_ConvertStringToImage" like function (this has been done for you in this example) ; Exit $hImage = _ConvertStringToImage($tImage, $aDim[0], $aDim[1]) _GDIPlus_ImageSaveToFile($hImage, "Test2.jpg") _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() Func _WriteImageToText($sFilename, $hBitMap, $iWidth, $iHeight, $bGDIp = True) ; Create text file to save image Local $hImage If Not $bGDIp Then $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitMap) _WinAPI_DeleteObject($hBitMap) Else $hImage = $hBitMap EndIf Local $tBitmapData = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iWidth, $iHeight, $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local $iScan = DllStructGetData($tBitmapData, "Scan0") Local $tByte = DllStructCreate("byte string [" & $iWidth * $iHeight * 4 & "]", $iScan) Local $sString = Hex($tByte.string) If $sFilename <> "" Then Local $hFile = FileOpen($sFilename, $FO_OVERWRITE) FileWrite($hFile, $sString) FileClose($hFile) EndIf _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData) _GDIPlus_ImageDispose($hImage) If $sFilename = "" Then Return $sString EndFunc ;==>_WriteImageToText Func _ReadImageFromText(ByRef $tByte, $sString, $iWidth, $iHeight, $bFileName = False) ; Recreate image from text file If $bFileName Then $sString = FileRead($sString) Local $dData = Binary("0x" & $sString) $tByte = DllStructCreate("byte string[" & $iWidth * $iHeight * 4 & "]") DllStructSetData($tByte, 1, $dData) Return _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $GDIP_PXF32ARGB, $iWidth * 4, DllStructGetPtr($tByte, "string")) EndFunc ;==>_ReadImageFromText Func _ConvertStringtoAutoIt($sImage) ; Format the string image into AutoIt script Const variable Local Const $LINE_SIZE = 4000 Local Const $FILE_NAME = _TempFile(@TempDir, "~~", ".txt", 10) Local $iPos = 0, $sTxt Local $hFile = FileOpen($FILE_NAME, $FO_OVERWRITE) While True $sTxt = StringMid($sImage, $iPos + 1, $LINE_SIZE) FileWrite($hFile, '"' & $sTxt & '"') $iPos += $LINE_SIZE If $iPos >= StringLen($sImage) Then ExitLoop FileWriteLine($hFile, " & _") WEnd FileSetPos($hFile, 0, $FILE_BEGIN) $sTxt = FileRead($hFile) FileClose($hFile) FileDelete($FILE_NAME) ClipPut($sTxt) EndFunc ;==>_ConvertStringtoAutoIt Func _ConvertStringToImage(ByRef $tBuffer, $iWidth, $iHeight) ; Convert the below Const variable into a GDI+ handle Local Const $IMAGE = "6F461FFF6F461FFF6D4620FF6B4620FF6B4523FF6A4523FF684523FF684523FF694422FF684420FF6E4721FF754D23FF774D23FF73491CFF744519FF784818FF7A4A16FF764612FF774815FF774D1EFF774E27FF6B4925FF634326FF5E4329FF543C28FF5A4635FF594637FF554437FF534337FF4F3F33FF504138FF614E46FF583E37FF5D4039FF5B3E35FF583B32FF5C4035FF624739FF654839FF624431FF5E4027FF634425FF674422FF69461BFF6E471AFF744D19FF764C17FF734914FF724716FF75481CFF74491EFF734620FF6F431EFF6D401FFF6C4021FF6D4124FF6D4227FF6D4326FF6D4326FF6D4423FF6D4423FF6D4620FF6D4620FF6F461FFF6D461FFF6D4620FF6B4620FF6B4522FF6A4622FF6A4523FF6A4622FF76512FFF6D4724FF66411BFF69421BFF6A4218FF693F15FF6E4318FF784B1FFF764A1BFF75491AFF71471CFF6B441DFF63401EFF5D3E1FFF5D4228FF5F4733FF8C7867FFA39285FFC1B1A5FFDDCEC5FFF9EAE1FFFFF6EEFFFFFAF2FFFFFFF8FFFFF1EBFFFFF5EFFFFFF1EBFFF8E1D9FFD9C2BAFFB39A90FF876F63FF6A5141FF5F4430FF62442BFF664728FF6B4826FF69451DFF654014FF6D4717FF7A5222FF744B1EFF764C21FF6F451BFF683C17FF6E411FFF784D2CFF774B2CFF6C4023FF6F4326FF6D4326FF6D4424FF6D4423FF6D4522FF6D4522FF6D4620FF6D4620FF6D4620FF6D4620FF6B4620FF6B4620FF6B4620FF6B4522FF6B4620FF623C19FF6A451FFF704A27FF6E4923FF6D4620FF6D4620FF6D4620FF6C451FFF5F3A18FF684726FF694A2BFF5E4126FF674D35FF98806CFFD9C5B4FFFFF2E5FFFFF6EDFFFFFEF6FFFFF8F2FFFCF1EDFFFFF5F1FFFFF6F4FFFDF1EFFFFCF0EEFFFEF1EFFFFFF3F1FFFFF5F3FFFFF5F2FFFFF8F5FFFFFDF7FFFFFCF5FFFFFAF1FFE5D2C5FFB29B8BFF7B624EFF654931FF64462BFF644224FF664322FF6C4725FF643F19FF6B441EFF744C29FF79512EFF724928FF693E1DFF6A3F1EFF744627FF714324FF6F4324FF6F4423FF6F4423FF6D4522FF6D4522FF6B4522FF6D4522FF6B4620FF6B4620FF6B4620FF6B4620FF6D461FFF6D4620FF6D4620FF69441EFF6F4A24FF6C4623FF633E1CFF66411FFF6F4C2BFF6E4B2AFF5F3F22FF694E39FF4E3826FF655140FFB6A394FFFBEADDFFFFFAF1FFFFF6F0FFFFFBF7FFF7EEEBFFFFF8F8FFFDF5F5FFF6EEEEFFFEF6F6FFFFFCFCFFFFF8F8FFFEF6F6FFFFFAF9FFFCF7F6FFF7F2F1FFF3EEEDFFF2EDECFFF7EFEFFFFBF1F1FFFEF2F0FFFFF6F2FFFFF7F1FFFDEAE2FFD4BEB2FF947A6CFF614435FF563827FF654430FF705033FF674625FF613D1FFF653F1FFF6A4323FF6D4423FF6F4423FF734624FF714422FF714422FF714422FF6F4522FF6D4522FF6D4522FF6B4522FF6B4523FF6B4522FF6B4620FF6B4620FF6D461FFF6F471DFF6F461FFF6F461FFF744D27FF694320FF66411FFF674625FF67472AFF5D4025FF593E24FF563E2CFF52423BFFC0B4B2FFFFFFFCFFFFFCF9FFE9E1E1FFF5EFF0FFFFF8FBFFEFEAECFFF5EFF4FFFFFAFCFFFCF7F9FFF4EFF1FFF8F1F4FFF8F2F3FFF5EDEEFFF3EDEEFFF7F5F5FFF6F6F6FFF9F9F9FFFBFAFCFFFBFAFCFFF8F7F9FFF8F5F7FFF9F4F6FFFBF4F9FFFFF5F8FFFFF6F8FFFFF4F5FFFCE8E7FFD4BFBEFF917979FF5B413BFF523827FF60442CFF65472EFF624127FF674325FF704929FF734926FF6D411CFF724520FF724520FF724520FF714520FF6F4522FF6B4522FF6A4523FF6A4523FF6A4622FF6B4522FF6D461FFF6F461FFF6F471DFF71471DFF6F461FFF68411BFF623C19FF684726FF6F5134FF593F27FF48301CFF6B5543FF9E8E82FFF7EFF0FFEFEBF1FFEAE8EEFFECEAF0FFF6F4FAFFFFFDFFFFFFFDFFFFFAF6FCFFF8F4F9FFFFF9FEFFFAF5F7FFF8F2F3FFFFF7F7FFFFF7F7FFFFF7F5FFFFFFFCFFFBF8F4FFF6F5F1FFF5F3F2FFF3F4F2FFF2F2F2FFF2F1F3FFF8F4F9FFFEFAFFFFF7F0F7FFF8F0F7FFF7ECF4FFFAEDF5FFFFF8FFFFFFF7FFFFE9D8E1FFC7B4B7FF715C54FF5D4636FF563C2BFF664A32FF6D4C32FF664022FF673D1AFF724621FF72451FFF74451FFF72451FFF71461FFF6F4520FF6B4523FF6A4424FF684523FF6A4622FF6B4522FF6D461FFF6F461FFF71471DFF71471DFF6F461FFF6E4721FF6C4725FF644427FF553B23FF533D2BFF786556FFC4B3AAFFFFF6F2FFF6F2F8FFF5F5FFFFF9F8FFFFF6F5FFFFF6F3FCFFF5F3F9FFF3EFF5FFF1EBF0FFFBF4F7FFFAF2F2FFF9EDEBFFFFF4F0FFFFFCF6FFFFF4EDFFFEEDE4FFFFF3EAFFFFF9EFFFFFF7EDFFFFF7EEFFFFF7F0FFFBF5F0FFF8F1EEFFFAF2F2FFFDF6F9FFF7F0F5FFFDF5FCFFFFF7FEFFFBF2FCFFFBF1FDFFFFF7FFFFFFF8FFFFFFF6FEFFEEE1DFFF9D8B84FF523F32FF4A3220FF61422BFF6B462AFF6E4524FF754A23FF72461DFF74461DFF72461DFF71461FFF6D4620FF6A4523FF684524FF684523FF6A4622FF6B4522FF6D4620FF6F461FFF6F461FFF6F461FFF6D4620FF643E1BFF6C4A2CFF62442BFF5A422EFF8E7B6EFFE4D5CCFFFFFEFAFFFAF2F3FFFAF6FCFFF3F2FCFFF4F1FAFFF7F3F9FFF9F3F8FFF9F2F5FFFCF4F5FFFFF7F5FFFCF0ECFFDDCDC6FFB3A098FF9C897CFF988172FF8E7664FF8D7563FF9C8472FF8E7866FF8B7563FF8D7968FF9B8978FFAF9E91FFCABAAEFFEADAD3FFFFF3F0FFFFF4F2FFFDF2F4FFFCF3F6FFFBF4F9FFF9F1F8FFF4ECF6FFF3EDF8FFF9F1FBFFFFFBFEFFF8ECEAFFBBABA4FF6B5549FF4C311DFF644329FF734D2DFF693F1AFF71471DFF72471CFF72461DFF" & _ "71461FFF6D4620FF6A4523FF684524FF6B4624FF623E1AFF754F2CFF623D17FF744D27FF714A24FF67401AFF694320FF634221FF694B30FF5D422DFF927E6DFFFFFCF3FFFFF5F1FFFFF9F9FFFFF7F8FFF2EBEEFFFEF7FAFFFFF8F9FFFBF1F1FFFFF8F4FFFFF6F0FFDCCBC2FFA69386FF947D6DFF977E6AFF9B7E69FF9D7F66FF9E8065FFA08063FFA28063FFA48062FFA68062FFA68062FFA47F63FFA27F65FF9E7E67FF9B7E69FF997D6CFF947D6DFFC2AFA2FFEFE0D7FFFFFAF4FFFBF0ECFFF7EFEFFFFFFBFCFFFEF9FBFFEEEBEDFFF8F1F6FFFDF5F6FFFFFBF7FFDBCAC1FF705949FF52361EFF613F21FF734D2AFF704720FF73491FFF6C4218FF6B421BFF734C26FF6F4A28FF654221FF6E4825FF643E1BFF6E4825FF6D4822FF694320FF66401DFF6E4927FF684628FF66482DFF563C24FF97816FFFFFFDF2FFFFF7F1FFF9EDEBFFF9F1F2FFFFF9FAFFFFFBF7FFFFF1EBFFFFF0E9FFFCE9E1FFD5C2B5FFA38C7CFF947B67FFA78B73FF9E8065FFA28063FFA68060FFA7815FFFA9815EFFAB815CFFAB825BFFAE815BFFB2815BFFB2815BFFB0805CFFAE805EFFAD805FFFA78060FFA47F63FF9E8065FFA0866EFF97826DFFC1AF9EFFF9ECDEFFFFF8EEFFF6EFE6FFFAF4EDFFFFFBF8FFFDF8FAFFF4EDF2FFFFF9F9FFF8EAE4FFE1CEC1FF765D49FF5A3D22FF674625FF623E1AFF734C25FF734C25FF6A431CFF65401AFF67411EFF694422FF704923FF69441EFF6A4421FF724E2AFF623D1BFF654423FF6B4B2EFF5A3C23FF5C412CFF9C8674FFFFFFF4FFFFF5ECFFFFF4F0FFFFFCFCFFFCF4F5FFFDF1EFFFFFF2E7FFFFFCECFFF3D9C8FFB09581FF8F725DFF9E7F66FFA58366FF956F4FFFA7815EFFAB815CFFAE815BFFB08259FFB08358FFB28357FFB28357FFB58257FFB98257FFBB8157FFBB8157FFB78158FFB58159FFB2815BFFAE815CFFA9815EFF9B7857FFA48669FF937A60FF95806AFFD0C2ACFFFFF6E2FFFFFBE9FFFFF6ECFFFDF7F8FFF2EBF0FFFFF6F8FFFFFFFBFFFFEFE3FFEBD7C6FF6D553DFF573B1DFF6B4C2BFF64421EFF633F1BFF6C4721FF6E4825FF66401DFF66401EFF70481EFF714A23FF6C4721FF6D4826FF603F1EFF6D4F32FF563C24FF553D29FF917C6DFFFFFFF5FFF6E7DEFFFFFAF4FFFFF7F3FFF4EBE8FFFFF8F9FFFFFDF9FFFFF1E1FFCDAE97FF9C7D64FFA28167FFAB866AFF9F7959FFA47C59FFBD926BFFAE8259FFB08358FFB28357FFB48357FFB48355FFB48355FFB58355FFB78355FFBB8255FFBD8255FFBB8255FFBB8255FFB98257FFB58257FFB28258FFAE8259FFB99069FFA37F5BFFA38463FF9D8162FF887256FFAD9A7FFFEFDEC4FFFFF8E8FFFFF6F3FFFFFAFDFFF6EBEDFFFBF0ECFFFFFBF2FFFFF2E5FFE4D0BEFF5C462DFF654A2FFF5D4021FF5F3E1DFF694624FF6E4825FF6D4724FF6E4623FF71471CFF6E461CFF6F4822FF684523FF634326FF61472FFF483220FF887566FFFAE9E0FFFFFAF4FFF8ECE8FFFFFBF7FFF8EFECFFFFFFFCFFF3EAE7FFF4E4DDFFB19682FFAF8C72FFA27D61FF9D7757FFA77E5DFFB28863FFB1865FFFAA7C53FFB28258FFB28357FFB48357FFB48357FFB48357FFB28357FFB48357FFB48357FFB58257FFB58257FFB58257FFB58257FFB58257FFB48357FFB28357FFB08358FFA67A51FFAD845DFFA8835DFFAB8866FFA8896AFF8F7154FFA4876CFFE4CCB8FFFFF2EFFFF7ECEEFFFFFBFBFFFBF0ECFFFDF1EBFFFFFFF6FFFFF3E6FFBAA996FF57402AFF60472DFF6C4E31FF664524FF5F3A18FF6E4623FF784E29FF76491DFF6A4015FF6B441EFF6C4928FF62452AFF513925FF675445FFD9CAC1FFFFF6F2FFFFF4F2FFFFF8F8FFF6EDEAFFFFFDFAFFFFF7F3FFF1E6E2FFA18F84FF967760FFA27C5EFFA98262FFB08766FFAD8360FFA77C55FFA97D54FFB2855AFFB28258FFB28258FFB28258FFB28258FFB08358FFB08259FFB08259FFAE8259FFAD825BFFAD8359FFAD8359FFAE8358FFB08358FFB08358FFB08358FFB08358FFAF8459FFA3794FFFAB8059FFAA825FFFA27C5AFFB18B6BFFB49072FF8F725DFFC1AFA8FFFFFEFEFFEFE3E1FFFFFEFCFFFEF3EFFFF6EBE3FFFFFFF5FFFBEEE0FF8D7C69FF5E4933FF553A20FF6B4C2DFF6D4826FF663F19FF70451EFF754718FF70451AFF67401AFF6C4928FF5F442AFF5D4735FFB7A69DFFFFF6F2FFFCF2F2FFF3EBECFFFAF2F3FFFFFDFDFFFAF1EEFFE8DDD9FF92857DFF948174FFA2836AFFA57F61FFA67F5FFFAD8463FFAE8461FFAB8059FFAE8259FFB98B62FFB08259FFB08259FFAE815BFFAE815BFFAD815CFFAB815CFFAB815EFFA7815EFFA4815FFFA2825EFFA2835CFFA6825CFFA7835BFFA9825BFFAD8359FFAD8359FFAF835AFFB68A61FFAE815BFFA97B59FFAC7F5EFFA47859FFA3775AFFAB8972FF99847CFFBEB1AFFFFFF8F6FFF2E6E4FFFFFCF8FFFCF2EBFFFCF3EAFFFFFFF2FFE7DACAFF776653FF462E16FF6A4C2FFF775432FF67401AFF6A4016FF714216FF7C5027FF653D1AFF654326FF5A412DFF756457FFFCF0EAFFFAF2F2FFF6EFF2FFFFFDFFFFFFF7F8FFFFFAF8FFFEF1E9FF9B8A7DFF9B8776FF927762FFA17E64FFAA8363FFAC8362FFA77F5CFFAB7F5AFFAE835CFFAE8259FFA87C53FFAE8259FFAE8259FFAD815CFFAB815CFFA9815EFFA7815FFFA68060FFA28160FF9E8162FF9D8260FFA0825FFFA2825EFFA7825CFFA9825BFFAD825BFFAD8359FFAA7E55FFAB7F56FFB1845EFFB38661FFAE805EFFAE8160FFB08263FFA57D64FF997C6DFF8F7B70FFDDCCC3FFFFFAF3FFFBEFEBFFFFFFFBFFF6F0EBFF" & _ "FFF8F4FFFFFFF8FFAA9D8FFF64503EFF5C4127FF5F3E1DFF6D4620FF784D22FF76431BFF774A25FF60381BFF6B4B34FF563F30FFE7D9D3FFFCF4F5FFF1EDF2FFF1EDF2FFFFFDFEFFF9EEEAFFFFFBEFFFB79F8BFF9A7D62FFA48160FFAC8664FFA78060FFA78060FFA9805FFFA9815EFFAD815CFFAD825BFFAE8259FFAE8358FFA97D54FFB1875DFFA87E59FFA77F5CFFAF8A68FFA07D5CFF977557FFAC8D6EFFA68A6CFF937657FFA17E5DFFAF8967FFA87B59FFAA7B55FFB4855FFFAD7F56FFAE8358FFAE8259FFAD825BFFAD815CFFAD805EFFAD805FFFAD7F60FFAB7F62FFAA8466FFA38268FF9F826DFFFBE4D5FFFFF5EEFFFFFDFBFFF9F2F5FFF9F3F8FFF8F1F4FFFFF9F6FF7D6C63FF5C4432FF644427FF6D4822FF66390DFF73411DFF724422FF6B432AFF5D3F2CFF907B73FFF8ECEAFFFBF6F8FFF7F5FBFFF8F7FBFFF0EBEAFFFFFFF8FFC9B5A4FFAA8D72FFA47F5DFFA57B51FFB2865DFFAB815EFFA7815FFFA9815EFFAB815CFFAD825BFFAD8359FFAE8358FFAE8358FFAE845AFFA87F58FFB18A64FFAA8563FF957355FFA18366FFB89B80FFB0957BFFAF967CFFB89D82FFA9876AFF9D7558FFB18463FFB68662FFAF7E58FFB4835BFFB08358FFAE8358FFAD8359FFAB825BFFAB815CFFAD805EFFAD805FFFAE7F5FFFB08361FF9B7251FFB08D73FFB29481FFFFEAE2FFF8EBE9FFFFFAFFFFF5F0F9FFF5F1F7FFFBF4F7FFC2B6B0FF5B4637FF62452AFF69441EFF744A1DFF71411FFF693E1DFF6B452DFF5E4231FFD6C3BBFFFFFAF8FFF6F1F3FFF8F7FBFFFBF8FAFFF3ECE9FFFCEDE4FF957F6DFF9C7E61FFA98360FFAC8057FFB0845BFFAB815EFFA9805FFFAB815EFFAB815CFFAD825BFFAE8259FFB08358FFAE8358FFB3895FFFA47D57FFA27D5BFF9E7C5EFFA88B70FFDFC5ADFFFFF6E2FFFFF6E4FFFFF7E5FFFFFAE5FFE5C9B1FFAE8D73FFA47C5FFFA67B5AFFA77A55FFB4865DFFAE8358FFAE8358FFAD8359FFAD825BFFAD815CFFAD805EFFAD805FFFAD805EFFAE815CFFA87E5BFFA78266FF93745FFFCDB7ABFFFFF4F1FFFDF4F7FFF9F5FBFFF7F3F9FFF8F1F4FFFFF5F1FF857265FF5D4228FF694422FF784E23FF744726FF683E21FF5F3D26FF896F5FFFFFF0E9FFFFFBFBFFF2ECF1FFF6F2F7FFF2EDEEFFFFF9F5FFBAA99CFF967E68FF9C7D5EFFA9825CFFB78C61FFAC7F54FFAD815CFFAB815EFFAB815CFFAD825BFFAE8259FFB08259FFB08358FFAE8259FFA77E57FFA8825FFF9D7B5DFFB3957CFFEED6C2FFFFFAE9FFFFF9ECFFFFFEF2FFFFFBF2FFFFF9ECFFFFFBEAFFF2D7C3FFB6947CFFA07A5CFFA97F5CFFA47952FFAE8259FFAE8358FFAE8259FFAD8359FFAD825BFFAD815CFFAD805EFFAD805EFFAA7D57FFB88C67FF9F7959FF9F8067FFA18878FFFCEAE3FFF9EFEFFFFBF5FAFFFAF3FAFFF8F1F4FFFFF7F5FFD0C0B4FF5B402BFF684726FF6B4319FF764D2DFF6C4529FF583924FFCEB6AAFFFFFBF8FFFEF6F7FFF8F2F7FFFBF6F8FFF7EFEFFFF2E5DDFF897564FFA0856BFFA58261FFA47B54FFB5885DFFAB7E53FFAD825BFFAD815CFFAD825BFFAE8259FFB08259FFB08358FFB08358FFAE8259FFAB845EFFA78463FFAA8D72FFD8C0ACFFFFFDF0FFFFFEF6FFF1E6E2FFF2EBE8FFEFE7E7FFEDE4E0FFFFFDF5FFFFFEF1FFDBC2AEFFAC8E73FFA78161FFA8815BFFAD8359FFAE8358FFAE8358FFAE8259FFAD8359FFAD825BFFAB815CFFAD815CFFAC7F59FFAB8059FFAB8261FF9F7D60FF9A7F6BFFC1ADA2FFFFF6F2FFF9F0F3FFF8F1F8FFFEF8FDFFF2E8E8FFFFF4EDFF705844FF65472AFF643F19FF6D462AFF68442CFF674B3AFFFBE7DCFFFFF4F2FFF6EFF2FFFAF4F9FFFDF6F9FFFFFAF6FFC2B2A5FF8D755FFF9F7F62FFAE8865FFA77D53FFAD8054FFB3865AFFAE8259FFAE815BFFAE8259FFB08259FFB08358FFB08358FFB08259FFAD825BFFAB8563FF9E7E61FFC7AC97FFFBE8D9FFFFF5EDFFFCF4F4FFFFFEFFFFFFFDFFFFFFFDFFFFFFFEFFFFFCF4F4FFFFF7EFFFFEEBDCFFC9B19BFF9E8063FFA98462FFAB825BFFAE8259FFB08358FFB08358FFAE8259FFAD8359FFAB825BFFAD825BFFB0845BFFA67953FFAC825DFFA68060FF9A7B62FF9C8373FFF6E4DDFFFFF8F8FFF7F0F5FFFFFBFFFFF2EBEEFFFFFAF6FFA38F7EFF62452AFF6C4824FF623F25FF62422BFF92786AFFFFF2EBFFFAF2F3FFF6F0F5FFF6F0F5FFFEF6F7FFF8EBE3FF9A8675FF9E8067FFA78463FFAF865FFFAD8257FFB18256FFB6875BFFB08259FFB08259FFB08259FFB08358FFB08358FFB08259FFAD825BFFA9815EFF9A7658FFB79980FFF4DECCFFFFFFF7FFFEF5F2FFF0ECF1FFF0F1FBFFE7E9F4FFEAECF7FFF1F2FCFFEDECF0FFFAF5F2FFFFFFF7FFF3E2CFFFB29B81FF957657FFA7815EFFAD825BFFAE8259FFB08358FFAE8358FFAD8359FFAB8359FFAB8359FFB2845BFFB08259FFA87B55FFB28A67FF9B795CFF9E816CFFC9B5AAFFFFFBF7FFF9F2F5FFF8F4FAFFFBF5FAFFFDF1EFFFE0CFC2FF624830FF694827FF5F4126FF634631FFBCA69AFFFCEDEAFFFFF9FCFFFBF7FDFFF3EDF2FFFFF6F6FFDAC7BFFF8A715DFF9B795CFFB8916BFFA77B52FFB18458FFB8885EFFAA7D52FFB08358FFB08358FFB08358FFB08358FFAE8259FFAD825BFFA9815EFFA68060FFA6886DFFEBD2BEFFFFFBEEFFFFF6F0FFFCF6F7FFF4F3FCFFEDEFFAFFF2F5FFFFF6F9FFFFEEF0FBFFF0F2FAFFF5F5F5FFFCF6EFFFFFFCEEFFE4D1BCFF9C8468FFA48160FFA9815EFFAE815BFFB08259FFAE8358FFAD8358FFAB8458FFAB8458FFAE8358FFAE8156FFB1835AFF" & _ "AA7E59FFAE8866FF9D7E65FFA68F7FFFFFEFE8FFFFF7FAFFECE8EEFFFBF7FDFFFBF3F4FFFFFAF1FF654D39FF5F4021FF64462DFF513923FFF9E7DCFFFCF0EEFFFBF5FAFFF6F3FCFFF1EAF1FFFFF7F7FFA18B7FFFA4856EFFA57F5DFFAA8056FFB38458FFB6875BFFB18459FFAD8055FFAC7F54FFBF8F65FFAC7F54FFAB7F56FFAD825BFFA77F5CFFAE8868FF95745AFFDABFAAFFFFEBDBFFFFFFF7FFFFF4F2FFF0EBEDFFFDFCFFFFE2E4EFFFF7F9FFFFEDEDFBFFF5F5FFFFEFF1F9FFF1F3F4FFFEFDF9FFFBF7ECFFFFFEECFFC8B39DFF987A5FFFB28B6BFFA47755FFB78A64FFA87C53FFAA8055FFB28B5FFFAB8458FFAE8358FFAD8055FFB5885DFFA97D54FFB28661FF9F7B5DFF987D69FFEDDAD2FFFAF2F3FFFCF8FEFFF1EEF7FFF6F1F3FFFFF9F1FF96806EFF5D3F22FF61462CFF644C38FFFFF0E4FFFDF3F3FFF7F3F9FFF4F0FBFFF9F2F9FFFEF1EFFF9F8577FFA48369FFA97F5AFFB08155FFB58458FFB5865AFFB0845BFFAD8158FFB18157FFAC7D51FFB5875EFFAB8059FFAB8261FFA17D5FFF95765DFFC1A692FFFFF1E1FFFFFAEFFFFFF3EDFFF6EDEAFFFDF7F8FFF0ECF1FFFFFDFFFFDFDDE3FFF1E9F3FFF8F1F8FFF9F8FCFFEEF0F0FFE8ECE7FFFFFFF9FFF5EFE2FFFFF5E3FFC1A692FF957159FFAB8164FFA97C5AFFB1845FFFAE845AFFAA8356FFA98255FFAE845AFFAA7E55FFB7875DFFAF8054FFB3855CFFA67D5CFF9D7E67FFDCC9BCFFFFF5F5FFFDF9FFFFF2F1FBFFF7F3F8FFFFF8F2FFAC9887FF5E4126FF5F472BFF826B55FFFFF7EEFFFEF6F6FFF2EFF8FFF3EFFAFFFFFAFFFFF1E0DDFF9B7F6EFFA68062FFAF8158FFB48254FFB58456FFB28559FFAF845DFFAE835CFFB28258FFA97A4EFFB2845BFFAF8562FFAA8668FF96775EFF9E8473FFF4DED2FFFFFFF7FFFFF6F0FFFAEFEBFFFBF2EFFFFFFDFAFFFBF4F1FFF6ECECFFA99D9BFFBEAEAFFFFCEFEDFFF7EFEFFFFCFBF7FFF3F7F2FFF4F8F2FFFAF8F0FFFFFFF7FFEED6CAFFA07F6FFFA47B64FFA67A5DFFB28563FFAF855BFFAA8356FFA58153FFAD845DFFA87B55FFB7875DFFB38254FFB28357FFAD825BFFA18066FFC1AA9BFFFFF3F1FFF9F5FBFFF1F0FAFFF4F2F8FFFDF2EEFFCAB7A8FF5C3F24FF5E462AFF9C8771FFFFFAF1FFFFF7F7FFF2EEF9FFF4F0FBFFFFFCFFFFD8C5C0FF9B7B68FFA87F5EFFB48357FFB88455FFB58355FFB08358FFA9825CFFAA835DFFAF7F55FFB9885CFFA57852FFAC8565FFA38169FF977D6CFFD3BFB4FFFFF8F2FFFFF4F2FFF4EBE8FFFFF6F3FFFFFBF7FFFFF4EEFFFFFFF7FFC3B3A7FF877368FF90756BFFE6CDC3FFFFF1E8FFFFFBF4FFFDFFFBFFE0E6E1FFFFFFFCFFF3ECE9FFFFEFEAFFDBBEB5FF9D7667FFAE826BFFA87C5DFFAA815AFFB0895CFFA68155FFAC855FFFA67A55FFB7875DFFB68557FFB28052FFB0845BFFA68264FFA78F7DFFFFF3F1FFF6F2F8FFEFF0FAFFF4F2F8FFF7EEEBFFEBD8C9FF5B3E23FF604628FFAE9781FFFFF9EFFFFBF6F5FFF0EFF9FFF4F3FDFFFFF5FBFFBFABA6FF9C7C65FFAD805EFFB78557FFBA8553FFB58454FFAE8156FFA57F5CFFA6805DFFAF8257FFB8885EFFA87C57FF9F7A5EFF987A67FFBAA79AFFFFF1EEFFFFF6F8FFFDF6F9FFF8F1F4FFFFF5F5FFFFFDF7FFFFF2E6FFEDD9C8FFA18973FF9B7C65FF9C7761FFB79480FFFEE7D7FFFFF7EAFFF8FBF2FFEEF5F2FFF1F6F7FFF6F3F5FFFFF4F6FFFFEEEDFFC19D93FFAB7F6EFFA3765BFFA97F5AFFAC8559FFAB865AFFA98360FFA57B58FFB3865BFFB78557FFB48051FFB5855BFFA98262FF977C68FFFFF7F3FFF9F5FBFFF3F4FEFFF6F5FEFFFAF1EEFFFFF1E2FF604328FF614729FFB39D84FFFFF5E9FFFAF5F4FFF1F0F9FFF6F5FFFFF8EEF4FFB4A19AFFA07E67FFAF825DFFBB8556FFBC8552FFB58454FFAC8057FFA47F5DFFA47F5DFFB3865BFFAA7A50FFB38966FF99785EFFA58C7CFFEDDDD6FFFFFBFCFFF5F1F7FFF9F6FFFFFEFAFFFFFAF0F0FFFFF9F1FFFFF1E0FFAA9078FF9B7B5EFFAC8666FFAC7D5EFFA97D60FFC7A891FFFFF9E7FFF8F7EDFFEFF6F3FFEEF5F8FFF5F7FFFFFFF4FCFFFFF1F5FFFFDBD7FFB28679FFAA7E66FFA97F5CFFA07B4FFFAD8A5EFFA78260FFA67D5CFFB08259FFB68456FFB58250FFB58458FFAA8160FF927762FFFFF5EFFFF8F4F9FFF2F2FEFFF6F5FEFFFBF2EFFFFFF8E9FF62452AFF624929FFB29C83FFFFF4E8FFFAF5F4FFF0EFF8FFF8F7FFFFF4EBEEFFBDA8A0FFA48068FFB1825CFFB98452FFBB8451FFB58454FFAD8359FFA48062FFA3805FFFB2855AFFAC7C52FFAE8663FFAE8F76FFDAC4B8FFFFFAF6FFF6F0F5FFF2F1FBFFEDEDF9FFF9F6FFFFFBF3F3FFF4E5DCFFDAC2AEFF937558FFA17B58FFAE8259FFB17A53FFB6825EFF99775AFFE8D5C0FFF7F5EAFFE9F0EDFFF4FCFFFFE9EBF6FFFEF2FEFFFFE9F1FFFFF7F7FFE3B8AFFFBB8F78FFA87E5BFFA58054FFAA875BFFA27F5EFFA88161FFAE8057FFB58355FFB98452FFB28153FFA9815EFF997C67FFFFF3EDFFF7F3F8FFEFEFFBFFF4F3FCFFFCF3F0FFFFF4E5FF64482AFF64482AFFB09A81FFFFF4E8FFFAF5F4FFEFEEF8FFF9F8FFFFF3EAEDFFC6B3ABFFA48068FFB0815BFFB78250FFBA844FFFB68555FFAF855BFFA48264FFA58261FFAD8054FFBB8E62FF9B7654FFC6AB96FFFFFBF4FFFFF7FAFFECEBF5FFF4F4FFFFF0EFF9FFFCF7F9FFFFFEF6FFDFCBBAFF9B7E63FFAE8A66FFA98157FFB48559FFC28B60FFB17D58FFA68060FFA9927CFFEBE3D6FFFCFDF9FFF2F6FBFFEFF0FAFFF9EFFBFFFFEDF6FFFFEFF0FFFFF5EDFFC39C86FFA17A5AFFB48E64FF" & _ "A48156FFA37D5DFFAA8363FFAC7E55FFB38153FFB98654FFB07F51FFA8805DFF9E816CFFFFF5EFFFFCF6FBFFF1F2FCFFF7F7FDFFFFF8F5FFFFF3E3FF674D2FFF614328FFAF9781FFFFFFF7FFEDE7E8FFF7F8FFFFF5F5FFFFF9F3F8FFB8A69FFF9F8166FFAF855BFFB78551FFB17D48FFB78855FFB3895EFF9B7857FFA5805EFFB18354FFB38758FFBC9A7CFFFFEFDEFFFFF8F9FFEDEEF8FFECEFFDFFEBEBF7FFF3ECEFFFFFF7EEFFFEE6D0FFAC8D6EFFA37E58FFAF855AFFAC8255FFB18458FFB18157FFAB7E58FFA17B5BFF9F836BFFBDAD9DFFF4EAE3FFFFFEFFFFF0E9F0FFFDF5FCFFFFF7FBFFFEEAE9FFFFF3E9FFFFF0DDFFAF8E74FF9B7654FFAC8663FFA98361FFAA805DFFB08259FFB07F51FFBE8C5EFFAC7C52FFAA8363FF907561FFFFF6F0FFFBF6F8FFF3F2FBFFF2F1F5FFFDF7F2FFFFFCECFF584226FF65472CFFB59A85FFFFF7EEFFF5EFF0FFF5F6FFFFF1F3FEFFF9F3F8FFB7A7A0FFA08269FFA07A50FFB78654FFBA8853FFB38451FFAD8358FFA17E5CFFA98664FFB2885DFFA67F58FFFCE2CAFFFFF5ECFFFBF9FFFFF6F9FFFFE6E9F7FFF7F6FFFFFFF8F4FFFFFFF1FFB89A7FFFAB8763FFA5805AFFAE8760FFA7815EFFA6805DFFA8825FFFA88361FF9E7D63FF907561FF9A877AFFCDBFB9FFF6EEEFFFFDF7FCFFFCF5FCFFF9F2F7FFFFF5F5FFFFFDF6FFFFF0E1FFE9CEB9FF9D7F64FFA37F61FFA67F5FFFAA805DFFBC8E65FFA8774BFFB38256FFB1855CFFA58163FF947B67FFFFF7F1FFFDF6F9FFF6F4FAFFF3F2F4FFFDF7F0FFFEF1E1FF5A4529FF67472AFFAC917CFFFFF0E7FFFDF5F6FFF7F6FFFFF0F1FBFFFBF5FAFFC7B7B0FF9E8369FF9C7850FFB88858FFB98955FFAC7E4EFFB0865BFFA78462FF9C7D5EFF997B5EFFDBC1A9FFFFFFF5FFF9F1F1FFF4F3FCFFF1F3FEFFF4F5FFFFF7F2F4FFFFF8F1FFD6BFAFFF997B62FF917356FFD1B499FFD9BFA7FFC5AD99FFD7BFABFFD3B79FFFD8BCA4FFD7BEAAFFC7B4A7FFBCAEA8FFD1C9C9FFF2ECF1FFFCF9FFFFF4F0FBFFF1EEF7FFFBF4F9FFFFF7F7FFFFF4EDFFFFF7EAFFBFA795FF9A7E66FFA68062FFAA805DFFB1835AFFB08056FFB7875DFFA47952FFA38164FFA88E7DFFFFF6F0FFFBF5F6FFF6F5F9FFF6F3F5FFFFF8F1FFEBDDCBFF5D472BFF634326FF92765EFFFFF5EAFFFFF5F5FFF7F6FFFFEFF0FAFFFBF5FAFFE4D7CFFF987E66FFA5815DFFB5895AFFAD7E4BFFAC7E4FFFB68C62FFA3805EFF907259FFAE9A89FFFFFFF7FFF9F1F1FFF3EFF4FFF1F2FCFFEDECF6FFF3EDF2FFFFF8F6FFE8D5C8FF98806CFF967A62FFAE947CFFFFEADAFFFFF6EAFFF1E8E5FFFFFDF9FFFFF3E8FFFFF3E4FFFFF9EEFFFFFBF3FFFCF2F2FFF8F3F5FFF7F4FDFFF1F0FAFFF0F0FCFFF7F6FFFFF1EFF5FFF0EBEDFFFFFDFAFFFEF2ECFFF4E5DCFFAF9888FF9D7B5EFFB38966FFA37650FFB4865DFFB78B62FF99714EFFAD8C72FFB39C8CFFFFF5EFFFF7F1F2FFF5F1F6FFF7F2F3FFFFFAF1FFD1C1B0FF60482CFF634123FF72563EFFFFFBEEFFFCF0EEFFF9F7FDFFEFEEF7FFF8F3F5FFFFF3EDFF957D67FFA68361FFB0865BFFAD7F50FFB18458FFA98157FF9D7856FFAA8F7AFFEEE2DCFFFDF9FEFFEDEAF3FFF6F5FFFFF8F7FFFFF9F5FBFFF0E4E2FFFFF3EAFFB39B89FF9B8169FF967C64FFF8E2D0FFFFF2EAFFF7F2F4FFF9FAFFFFF2F4FFFFFFFCFDFFFFF3EDFFFEF2F0FFFFF7F7FFFBF6F8FFF8F6FCFFF8F5FEFFEFEEF7FFF4F5FFFFF6F7FFFFF5F4FDFFF2F0F6FFFDF8FAFFF8F2F3FFFFFEFEFFDDCCC3FFA38169FFB18764FFAD805AFFA97C56FFAD815CFFA6815FFFA5876EFFC5B1A0FFFFF6F0FFF6F0F1FFF5F2F4FFF9F4F3FFFFFCF2FFB6A592FF62482AFF664426FF61432AFFFDE8D9FFFDF1EDFFFBF5FAFFF1EFF5FFF5F0F2FFFFFCF6FFA48E7CFF9C7D5EFFA78059FFB78C61FFB3895EFF9D744DFFAB8664FFE7CCB7FFFFFCF9FFEFEEF7FFF2F1FBFFF7F4FDFFF7F3F9FFFAF0F0FFFFFFF8FFC4B09FFF967B66FF9F846AFFD5BBA3FFFFFDECFFFFF4F0FFEEEBF4FFECF3FFFFE4EAFDFFF6F4FAFFF5EDEDFFF6EEEEFFF6F0F1FFF1ECEEFFF4EFF1FFFAF6FBFFFAF6FBFFF8F4F9FFF0ECF1FFFFFBFFFFFFFCFFFFECE7E9FFFFFEFFFFF5F0F2FFFFF2ECFFD7B89FFFA37956FFAF835EFFA87E59FFAB8261FFA98769FF856A55FFEDDDCDFFFFF8F4FFF9F4F3FFFBF6F7FFFCF5F2FFFFF8ECFF98836EFF64482AFF684524FF5F4126FFD0B9A9FFFFF7EFFFF9F2F5FFF7F3F9FFF8F3F5FFFFF6F2FFCAB5A6FF997B62FFA27D5BFFB58E67FFA98059FFAC855EFFDDB896FFFFF6DEFFFDEFE9FFFDF8FAFFFDF7FCFFF6EFF2FFFBEFEDFFF9E9E2FFF7E2D3FF8F7662FF9D7F66FFBFA186FFFFFEE6FFFFF0E0FFFFFBF5FFFAF6FBFFEEF1FFFFF1F6FFFFFBF7FCFFFEF6F6FFFFFBFBFFFFFCF9FFFEF5F2FFFFF6F3FFFFFBF7FFFFF6F2FFFFF5F1FFF6EDEAFFFFF9F6FFFFFCF9FFF1E9E9FFFFFBFCFFEFEAEBFFFFFAF2FFFFEED6FFC49978FFAB815EFFAC8362FFAB8769FF9F8067FF8D7563FFFFFAEEFFFFF6F2FFFBF6F5FFFFFAF9FFFDF3ECFFFCEBDEFF765F49FF624526FF684321FF644526FFA9917DFFFFFCF3FFFBF0F2FFFEF8FDFFFFF8FBFFF7EEEBFFEAD8CDFF9A826CFF9B7C5DFFA98561FF98734DFFC9A47EFFFFEAC6FFFFFDE2FFFFF9EAFFFCECE5FFFFFFF9FFFFF2EBFFFFF7ECFFFFF4E5FF99806CFF9C8068FFA9886EFFFFEBCEFFFFFBE2FFFFFBE7FFFFF0E5FFFFF4F0FFF8F2F7FFF7F3F8FFFFF7F7FFFEF4EDFFFFF4EEFFFFF4ECFFFFF3E7FFFFF9ECFFFFFAEDFFFFEFE0FFFFFBECFFFFFCEFFFFFF4E7FF" & _ "FFF6EAFFFFFFF7FFF4E8E2FFFFFFFBFFFFF5E9FFFFFCE2FFFFDFBEFFB18868FFA07A5CFF9C7B61FF9E836EFFBBA899FFFEF2E8FFFBF2EEFFFAF5F2FFFFFBF8FFF9EEE6FFF1DECFFF60462EFF613F21FF6F4926FF684726FF6D523DFFFFF7EAFFFFF7F5FFF9F2F5FFFFF9FCFFF8F0F0FFFFF0E7FFB69F8FFFAB8D74FF987658FFA6815FFFB38F6BFFC09C78FFC29F7EFFBEA085FFBE9F88FFBC9F8AFFB89D88FFB29782FFAB8E79FFA4856EFF9F8166FFB8987BFFBB997BFFBE9C7FFFBC9E83FFBA9D88FFB59D8BFFB19B8FFFAE9A8FFFAD9C8FFFAD9C8FFFB19D8CFFB39D8BFFB69E88FFB89E86FFBC9F84FFBC9F84FFBC9F84FFBC9F84FFB89E86FFB69E88FFB39D8BFFB19D8CFFAF9C8DFFB59D8BFFBF9A7EFFD4AB8BFF9F795BFFA8876DFF947860FF937D6BFFFDEDE1FFFEF5ECFFF6F0EBFFFFFFFCFFFAF2EBFFFFFBEFFFB7A18FFF654A30FF6A4726FF633C16FF714E2CFF62462EFFDDC8B9FFFFF6F2FFFBF3F4FFFAF3F6FFF8F0F0FFFFF7F1FFD9C8BBFF907862FFA08267FFA48264FFA6815FFFAB8763FFB28D67FFA77E57FFA87E59FFA8805DFFA78161FFA58163FFA17F62FF9F7D60FF9D7B5EFF9D7B5DFFA17D5FFFA57F5FFFA78161FFA68362FFA68264FFA58163FFA07F65FF9A8068FF98806AFF9C8167FF9E8166FFA18263FFA58260FFA8825FFFA8835DFFA8835DFFA8825FFFA58260FFA38261FFA18164FF9E8166FF9C8068FF9F8067FFB1896CFFA98060FFAC876BFF9A7C63FF9B836FFF9D8D7DFFFFF6ECFFFCF6EFFFFEF8F3FFF7F1ECFFFFF4ECFFFFF7EAFF7A624EFF6D4F34FF603B19FF6A411AFF724D2BFF604328FF9E8876FFFFFBF3FFFAF0F0FFF8F1F4FFFCF6F7FFFFFCF8FFF7E8DFFFA68F7FFF9D8169FFA28265FFA3805FFF9E7A56FFA77F55FFB38254FFB48353FFB38256FFAF8158FFAD815CFFAA8160FFA98262FFA98365FFA27C5CFFA37D5DFFA6805EFFAB815CFFAD825BFFB08358FFB18157FFAC8057FFA6815FFFA28062FFA48160FFA6825EFFA9825CFFAB8359FFAE8358FFB08358FFB08357FFAE8358FFAE8259FFAB825BFFA9825CFFA7815EFFA6815FFFA78060FFA37A59FF9B7454FFA68467FF9F856DFF907C6BFFD5C7BBFFFEF6EFFFFDF9F4FFFCF7F4FFFCF3EFFFFFF5EBFFF2DFD0FF573C27FF644225FF714827FF7A512AFF633D1AFF66482BFF6C5440FFF3E4DBFFFAF1EEFFF8F1F4FFFFF9FCFFFFF8F8FFFAEEE8FFE9D6C9FF9B826EFF9A7C61FFA88766FFA5815DFFAB8157FFB98858FFBC8755FFB88455FFB48355FFB18157FFAD805AFFAB815EFFA9805FFFA7815FFFA7815FFFAC825FFFAF845DFFB48559FFB68555FFB98452FFB58355FFAE835CFFA8825FFFAA835DFFAC835CFFAF835AFFB18459FFB38458FFB58456FFB58456FFB58456FFB38458FFB38458FFB18459FFAF835AFFAE835CFFAE825DFFA77D5AFFAB8464FF9C7B61FFA18874FFA19083FFFFF9F0FFFDF8F5FFFAF7F3FFF8F5F1FFFDF5EEFFFFFFF3FFAE9A88FF5E4027FF654123FF744A27FF7A5026FF5C3711FF694A2BFF543C26FFAB9B8FFFFFF8F4FFFAF4F5FFFAF5F7FFF8F1F4FFFDF1EFFFFFFCF3FFC1AA9AFF977B63FF9E7C5EFFAC8864FFAE855EFFAB7E53FFAF7E52FFB18054FFB28155FFB18256FFB18157FFAD805AFFAC805BFFAA805BFFAA805DFFAB815CFFAE815BFFAF8257FFB38254FFB68253FFB38153FFAD805AFFAA805BFFAC805BFFAD805AFFAD8158FFAF8158FFB18157FFB18157FFB18157FFB18256FFB38256FFB38256FFB18256FFB18157FFB18157FFAF8158FFAF835EFFAA8363FF987960FFA48C7AFFE6D7CEFFFFFBF6FFFBF9F8FFF3F4F2FFF9F6F2FFFEF7EEFFF8E8DBFF664E3AFF67462CFF744D2DFF603311FF6D4319FF6C451FFF6A482AFF593F27FF604F42FFF1E6E2FFFAF4F5FFF6F2F7FFF5F0F2FFFFFBFBFFFEEEE7FFFCE7D8FFB0967EFF947556FFA98561FFA9825CFFAA805DFFAB815CFFB0835DFFB3865BFFB5855BFFB68559FFB38359FFB08259FFB0835DFFAF845DFFAF835EFFAF835EFFB0845BFFB2855AFFB68559FFB6845AFFB0835DFFAF835EFFAF835EFFB0835EFFB0835DFFB0835DFFB2835DFFB2835DFFB2835DFFB2845BFFB4835BFFB4845AFFB6845AFFB6845AFFB68559FFB4845AFFA97D58FFA78161FF997B62FFD4BDADFFFFFFF8FFFDF8F5FFEBEBEBFFF6F8F8FFF3F2EEFFFFFFF8FF9E8F7FFF533B25FF6E4B31FF694020FF704220FF6D4217FF764D26FF6C4928FF60442CFF4D3A2DFFA1958FFFEEE8E9FFF9F5FAFFF7F3F8FFFFF9FAFFF8EAE4FFFFFFF2FFE6CBB6FFB49576FFA7835FFFA47E5BFFA17E64FFA27F65FFA68060FFAB815CFFAE8057FFB18054FFB07E50FFAE7D51FFAF7F55FFAB7F56FFAA7E59FFA87E5BFFA87E5BFFA87E59FFAB7F5AFFAB7F5AFFAB7E5CFFAB7E5CFFAB7E5CFFA97F5CFFA97E5DFFA97E5DFFA97E5DFFA97E5DFFAB7E5DFFAB7E5CFFAC7F5AFFAE7F59FFB07F59FFB07F57FFB28056FFB07F57FFA67A55FFB79171FFC8A992FFFFF2E3FFFFFDF6FFFBF9F8FFEAECEDFFF6F8F9FFF3F2EEFFDED7CEFF554534FF5F472FFF6C4A2DFF623918FF7F512FFF74491EFF6E461CFF6B4624FF5D4025FF614B39FF4A3C30FFDED5D1FFFDF7F8FFFCF7F8FFF1EBECFFFFFDF9FFFFF1E8FFFFFAE9FFDCC4AEFF9F8469FF9C7E63FF9D7D66FFA07E66FFA68062FFAB815EFFB1835AFFB68559FFB88658FFB88658FFB48357FFB08259FFAE815BFFAA805DFFA9815EFFAA8160FFAA8160FFAB8261FFAE8160FFAE8160FFAE8160FFAC8160FFAC8160FFAC8160FFAC8160FF" & _ "AC8160FFAE8160FFAE815FFFAF815FFFAF825DFFB1815DFFB1825CFFB1825CFFAC825FFFA48167FFB79C88FFFFF5E6FFFFF7EEFFFFF7F4FFF0ECEBFFFFFFFEFFF3F0ECFFFFF9F2FF7E7163FF59442FFF604328FF5F3B1DFF7E5431FF653813FF72481BFF6B4116FF704C24FF654522FF62472DFF56412CFF79695CFFFFF5EDFFFFF8F4FFFCF5F2FFFBF3F3FFF9F2EFFFFDF4F0FFFFFAF3FFBFB4ACFF988578FF9E7F66FFA88161FFAF8463FFB1845FFFAF8158FFB4845AFFB58458FFAD7C50FFB48357FFB28258FFAF8158FFAD805AFFAE825DFFAD8360FFA9805FFFA57C5BFFAA7C5DFFAF8261FFB28564FFB18361FFAE815CFFAF7F5BFFB0815BFFB0815BFFAF805AFFAE7F59FFAE815BFFB0845FFFAE825DFFA97F5CFFA77F5CFFA08267FFA4948EFFEDE4E7FFFFFAFDFFFAF4F5FFEDE5E6FFFFF7F4FFFFFFF9FFFFF3E7FFBFAB9AFF6A523CFF54361BFF6D4A29FF68421FFF6C421DFF7B4E28FF7A5023FF6F4619FF704A20FF62401CFF644728FF5B4228FF59442FFF9F8F7FFFFFF7EDFFFFF6F2FFFFFCF9FFF9F4F3FFF9F4F5FFEAE7E9FFFFFEFFFFC5B9B3FFA2866EFFA88161FF9D7453FFA27855FFAF835EFFA77A54FFAA7C53FFC4946AFFB28258FFB38359FFB38359FFAD7F56FFA87B55FFA97E57FFAF835EFFB48765FFB18361FFAE805EFFA97C57FFA77753FFAB7A54FFB07F59FFB5845CFFB6885FFFAF805AFFAB7E58FFAC825DFFAD8764FFA68060FF9D795BFFA68466FFAD9583FFFBF4F7FFF9F9FFFFECEBF5FFF2EEF4FFFFFEFFFFFFFFFBFFFEECE1FFEAD3C3FF785B46FF57391EFF623F1EFF77512EFF6C451FFF6A411AFF754B21FF754B20FF6C4519FF724B24FF65411DFF664726FF674A2FFF4E3620FF594533FFCAB9ACFFFCF0E6FFFAF0E9FFFFFCF9FFEFEAE9FFFFFDFEFFF8F5F7FFFFFAF6FFE2CBBBFFB89982FFA4826AFFA88669FFA47E60FFA6805EFFAE8461FFA1764FFFAC8057FFAE8156FFB28258FFB6865CFFB6895EFFB4875CFFAE8156FFA97B52FFB78660FFB5845EFFB5845CFFB7865EFFB8875FFFB4835BFFAA7B55FFA2754FFFAA805BFFA27C5AFFA3805FFFA28265FF96785FFF9D8169FFD5BAA5FFFFFBEEFFFFFCFFFFE5E2EBFFFCF8FEFFEFE8EBFFFFF8F6FFFEEEE7FFFEEBDEFF7E6654FF583C24FF5D3D20FF6B4827FF704A27FF663F19FF694019FF744A20FF694319FF68411AFF734E28FF694521FF654220FF6D4E2FFF614429FF5A4028FF553F2DFFEBD8C9FFFFF6EAFFF9EEE6FFFFF9F5FFE9E4E3FFFFFEFFFFF2EBE8FFFFF9F0FFFCE7D8FFBEA595FF927763FF9F836BFFA6886DFFA07C5EFFA88260FFAE8761FFAD825BFFAA7E55FFAA7D52FFA97C51FFA97C50FFAD8054FFB38359FFAF7F55FFAC7B53FFAB7B51FFAD7F56FFB1835AFFB0835DFFAF835EFFAC8461FFAB8565FFAC8C6FFF9C7E65FF8B735DFFAD9785FFECD9CAFFFFFCEFFFFFF5EDFFF1E9EAFFFEF8FDFFFFFEFFFFFFF8F6FFFBEDE7FFFFFCF1FF725B4BFF5C432FFF674930FF6C4C2FFF6A4726FF66401EFF6B4320FF714722FF704720FF6C4721FF66411BFF6F4B27FF6B4723FF623E1AFF684523FF684726FF634528FF4E3319FF745C46FFE8D4C3FFFFFAEEFFFFFFF7FFFDF4F1FFECE7E6FFFFFCFBFFF8EFECFFFFF4EEFFFFFDF6FFE7D7CBFFA18C7DFF8F7765FF9F836BFF997B60FF9F7B5DFFA88260FFB28B65FFB78C65FFAE845AFFA87D52FFAE8358FFBB8E63FFB08358FFAE8358FFB1855CFFB48A60FFAF8560FFA77F5CFFA27C5CFFA17F62FFA3856CFF876F59FF998574FFDBCABDFFFFF6ECFFFAF0E9FFF3EAE7FFFFF8F5FFFFFBFBFFF9EDEBFFFEEFECFFFFF8F1FFFFF2E7FF9B8475FF533A26FF674B33FF624429FF664426FF653F1FFF6A4422FF79512EFF754E28FF69421CFF6F4C2AFF63401EFF66421EFF6C4824FF6B4620FF6B4620FF6C4721FF684321FF6F4D2FFF583B20FF624A34FFE1CDBCFFFFFEF2FFFFFFF8FFF6EDEAFFFFFEFFFFFFFAFCFFFFFBFCFFF6EEEEFFFEF2F0FFFFFDF7FFE5D5C9FFAB9687FF99806CFF9F836BFF987A5FFF987658FFA17E5CFFA98561FFA7825CFFA37C56FFA07953FFAA835DFFA5805AFFA47E5BFFA47F5DFF9F7C5BFF97775AFF997B62FF9E836EFFA28C7AFFCABAAAFFF2E3DAFFFBF1EAFFF9F2EFFFFDF8F9FFFDFAFCFFFAF5F6FFFFF3EFFFFFEFE8FFFFEDE5FFFDE7DBFF8E7767FF543B27FF72563EFF5B3D22FF634123FF654221FF66411FFF6D4725FF754D2AFF6C4421FF68401DFF684726FF644322FF623F1DFF6D4822FF744D26FF71491FFF70481EFF6F461FFF6E4825FF664322FF62452AFF58402AFFC1AE9FFFFEEFE6FFFFFCF8FFF3EBEBFFF5F1F6FFEBE9EFFFFAF6FBFFFFFEFFFFF8F0F0FFF7ECE8FFFFF2EAFFFFEFE3FFD3C0B1FFB8A290FF9C856FFF987E66FF9E8369FF9F8469FFA18469FFA28668FFA5886DFF9A7D62FF93755CFF987C64FFA48974FFB59D89FFCDB9A8FFE1D1C1FFFFF7EBFFFFF9F1FFFFF8F4FFF9F4F3FFF5F2F4FFF5F4F8FFF0F0F6FFF1ECEEFFFFF8EFFFFFEEDFFFFFF8E8FF816756FF604530FF664730FF523419FF5F3D1FFF6C4928FF6C4725FF6C4624FF6B4522FF68421FFF66401DFF6B4522FF5F3F22FF6B492BFF674422FF6C4721FF6F4821FF6B4117FF70451AFF74491EFF663D16FF77512EFF5F3D1FFF64492FFF5B4533FFA08F82FFFFF8EFFFFFF6F2FFF5F0F2FFFCFAFFFFF9F5FAFFEEEBEDFFF9F2F5FFFFFEFEFFFFFBF8FFFCF2EBFFFCF1E9FFFFF4EAFFFFF6EAFFFBEBDEFFDECEBEFFC0AE9DFFB5A392FFBBA998FFB9A796FFBEAB9CFFD0C0B0FF" & _ "EEDDD0FFFFF1E4FFFFF4E8FFFFF4EAFFFFF8EFFFFFF6F2FFF9F2EFFFF7F2F1FFF7F5F5FFFAF6FBFFF7F6FAFFF4F4FAFFFCF7F6FFFFF7EAFFE7CCB7FF634631FF62432CFF5D3E25FF5E3E21FF765436FF6B4827FF684321FF684220FF6B4522FF6C4623FF6A4421FF6F4926FF704A28FF624429FF644427FF684524FF6B4522FF6F461FFF71471CFF74471BFF74471BFF6F4419FF6E451EFF6F4A28FF6C4C2FFF573D25FF503A28FF887566FFD8C9C0FFFEF5F2FFFAF4F5FFFAF4F5FFF9F3F4FFF9F3F4FFFAF4F5FFFAF4F5FFFAF5F4FFF9F1F1FFFDF5F5FFFFFAF7FFFFF8F5FFFDF4F1FFFCF3EFFFFFF6F2FFFFFBF7FFFFF9F4FFF8F1EEFFF5EEEBFFFCF5F2FFFFFBF8FFFFFAF7FFFBF6F5FFF8F3F2FFFFFCFBFFF8F4F3FFF6F1F2FFF6F1F2FFF5F0F1FFFCF7F8FFFBF6F7FFF6EAE4FFA48C7AFF75563DFF57391EFF624225FF6A482AFF664322FF66411FFF694321FF6B4522FF6B4522FF6B4522FF6B4522FF6A4523FF6A4523FF6A4424FF644329FF644427FF684524FF6B4522FF6F461FFF71471DFF74471BFF74471BFF784D22FF71471DFF68411BFF684524FF65472CFF563924FF503723FF5C4738FFA89891FFE5D9D3FFFFFFFBFFFEF3EFFFF3EAE7FFFFFCFCFFFFFEFFFFF3EDEEFFFFFBFDFFF5F0F2FFECE9EBFFF1EDF2FFFCF8FDFFFFFCFFFFF6F2F7FFEAE6EBFFF2F1F5FFF9FBFCFFFDFEFFFFF9F8FAFFEDECEEFFE9E8EAFFF4F1F3FFFEFCFCFFEDE8E9FFFFFEFDFFFFFEFEFFFEF7F4FFFEF5F1FFFDF3ECFFBDB1ABFF675649FF6D5139FF634124FF603E20FF694625FF694323FF694321FF6D4724FF714926FF6D4522FF6D4522FF6B4522FF6B4522FF6A4523FF6A4523FF684524FF664427FF664427FF684524FF6B4523FF6D4620FF71461FFF72461DFF72471CFF6C4017FF72481EFF6C451FFF6A4523FF714D2FFF6D4C32FF604229FF583D28FF543D2DFF645142FFA69588FFF7E7DBFFFFFFF8FFF6EAE4FFF3E8E4FFFFFEFEFFFDF7F8FFFFFAFCFFFEFAFFFFF9F5FBFFF3EFF5FFF1EFF5FFF8F6FCFFFDFDFFFFEEF1F6FFF0F3F7FFF0F3F8FFF4F5F9FFFAFBFFFFFFFEFFFFF7F4F6FFEAE5E6FFFFFCF9FFF3E8E4FFF9EDE7FFFFF4EBFFD1C1B4FF857263FF5E4A39FF614834FF57361CFF63401FFF6E4B2AFF6E4927FF67411FFF6D4522FF734B28FF6C451FFF6D4620FF6D4620FF6B4522FF6B4522FF6A4523FF6A4424FF684426FF684327FF684426FF6A4424FF6B4523FF6D4522FF6F4520FF6F461FFF71461FFF6A411AFF774E27FF734C26FF653F1CFF653F1DFF674423FF6B4729FF6E4E31FF5F4128FF664C34FF654D37FF69513FFF927D6EFFD5C3B8FFFFF0E7FFFFF7F1FFF9EDEBFFF6ECECFFF4ECEDFFF9F1F2FFFCF5F8FFFDF6F9FFF9F2F5FFF3EEF0FFEFEDEDFFF5F5F5FFF6F4F4FFECEAEAFFEDE9E8FFF9F4F3FFFFFBF8FFFFF9F5FFFFFAF2FFF2E3DAFFBDAA9DFF705C4BFF482F1BFF553B23FF64492FFF5B3D22FF6A4628FF6D4826FF6F4A28FF6C4623FF69411EFF714926FF744A25FF673D18FF6D4620FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6A4426FF6A4424FF6A4424FF6A4424FF6B4523FF6B4523FF6B4522FF6B4522FF6F4822FF714A24FF6B4320FF69411EFF6F4724FF6C4421FF643C19FF623C19FF6A4424FF573315FF543215FF5F4027FF62462EFF5E4531FF745B4BFF927C70FFD0BCB1FFEBD8D0FFFFF9F0FFFFFFF8FFFFF4EFFFFDEAE5FFFFEFE8FFFFF9F2FFFFFEF4FFFFFDF3FFFFF9EFFFFFF9EFFFFFFEF4FFFFF2E6FFD6C6BAFFA9988BFF7E695AFF5C4634FF543924FF654A30FF705033FF6C4A2CFF6F4929FF714C2AFF704B29FF674220FF67411FFF694320FF69411EFF6E4721FF734924FF6D431EFF6F4520FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6B4424FF6A4424FF6A4424FF6A4424FF6A4424FF684524FF684524FF6A4424FF66411FFF684220FF69411EFF6F4724FF7C522DFF794E27FF72461DFF754920FF774B26FF754B28FF754C2BFF704A2AFF643F23FF58371DFF5C3D26FF664934FF553A26FF553B2AFF624837FF816756FFA58B7BFFBBA190FFBBA190FFB49B87FFA7927DFFAC9984FFA6917CFF8A7560FF6B5641FF5B4631FF5A422EFF5B432DFF5D432BFF5D3F26FF654528FF6A4628FF643E1CFF643D17FF70451EFF704621FF6C4623FF643F1DFF6B4522FF714B28FF6B441EFF67401AFF6F4520FF734924FF6F4520FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF6D4423FF6B4523FF6A4424FF6A4424FF684426FF664427FF664427FF664427FF644022FF6E4828FF6C4624FF6C421DFF6E431CFF6E4116FF704115FF794A1EFF6B3D14FF6D401AFF6D411CFF6C421FFF6F4625FF734C2CFF6F4B2DFF674528FF714E34FF6D4A30FF68452BFF623F25FF623D21FF623D21FF654024FF684426FF6C4D2CFF684C2AFF664726FF634627FF644728FF65472AFF644629FF654528FF6A482AFF6B4827FF6F4A28FF704825FF734821FF7B4F26FF7B4E23FF683C13FF704825FF684321FF6F4927FF724C29FF6C451FFF68411BFF6F4520FF6F4520FF6D4620FF6D4620FF6B4522FF6B4522FF6A4424FF6A4424FF684426FF" Return _ReadImageFromText($tBuffer, $IMAGE, $iWidth, $iHeight) EndFunc ;==>_ConvertStringToImage Image From Text.au3 RePlay, Romano71 and mLipok 3 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector GIF Animation (cached) Screen Scraping Link to post Share on other sites
supersonic 5 Posted October 28, 2022 Share Posted October 28, 2022 This is pretty cool! Could the function _WriteImageToText() be extended so that a bitmap is first converted to PNG and then saved? Link to post Share on other sites
Nine 1,632 Posted October 28, 2022 Author Share Posted October 28, 2022 1 hour ago, supersonic said: Could the function _WriteImageToText() be extended so that a bitmap is first converted to PNG and then saved? The function saves the content of a GDI+ bitmap. What do you mean by converted to PNG ? “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector GIF Animation (cached) Screen Scraping Link to post Share on other sites
supersonic 5 Posted October 28, 2022 Share Posted October 28, 2022 Currently I have something like this: ... $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($aDllCall[0]) $hBitmapResized = _GDIPlus_ImageResize($hBitmap, $iResizeWidth, $iResizeHeight, $GDIP_INTERPOLATIONMODE_NEARESTNEIGHBOR) _GDIPlus_ImageSaveToFileEx($hBitmapResized, $sPathFile, _GDIPlus_EncodersGetCLSID("PNG")) ... $hFile = FileOpen($aTest[0], $FO_BINARY) If ($hFile <> -1) Then $sData = FileRead($hFile) If (Not @error) Then ... EndIf FileClose($hFile) ; !!! EndIf ... I'm looking for something like that: ... $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($aDllCall[0]) $hBitmapResized = _GDIPlus_ImageResize($hBitmap, $iResizeWidth, $iResizeHeight, $GDIP_INTERPOLATIONMODE_NEARESTNEIGHBOR) $hPNG = _GDIPlus_ConvertBitmapToPNG($hBitmapResized) $sPNG = _GDIPlus_PNGToString($hPNG) ... ... to avoid creating/reading a file. Link to post Share on other sites
Nine 1,632 Posted October 28, 2022 Author Share Posted October 28, 2022 Like I said, the object that I am using is a handle to GDI+ bitmap. Not sure that it would a difference inside the bitmap between any type of encoding. Anyway, if there is a difference, I do not know how to make it effective. “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector GIF Animation (cached) Screen Scraping Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now