AutoIt
AutoIt
Extract data:image/png;base64 from HTML
See more Base64 Examples
Demonstrates how to extract base64 image data from HTMl and save to files.Chilkat AutoIt Downloads
Local $bSuccess = False
$oSb = ObjCreate("Chilkat.StringBuilder")
$oBd = ObjCreate("Chilkat.BinData")
$oSbFilename = ObjCreate("Chilkat.StringBuilder")
Local $index = 1
$bSuccess = $oSb.LoadFile("qa_data/html/oresp body.txt","utf-8")
; Assume success.
ConsoleWrite("length = " & $oSb.Length & @CRLF)
Local $bMayHaveMore = True
While $bMayHaveMore = True
; Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
Local $sBase64 = $oSb.GetBetween("data:image/png;base64,","'")
; If nothing is found, then we'll exit the loop because there are no more.
$bMayHaveMore = $oSb.LastMethodSuccess
If ($oSb.LastMethodSuccess = True) Then
; Found something.
; Load into bd and save.
$bSuccess = $oBd.LoadEncoded($sBase64,"base64")
$oSbFilename.SetString("qa_output/png_")
$oSbFilename.AppendInt($index)
$oSbFilename.Append(".png")
$oBd.WriteFile($oSbFilename.GetAsString())
; Replace "data:image/png;base64" with "data:image-png;base64" so the next iteration finds the next occurrence.
$oSb.ReplaceFirst("data:image/png;base64","data:image-png;base64")
EndIf
$index = $index + 1
Wend
; Restore our replacements..
Local $iCount = $oSb.Replace("data:image-png;base64","data:image/png;base64")
ConsoleWrite("All done." & @CRLF)