Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSb
LOCAL loBd
LOCAL loSbFilename
LOCAL lnIndex
LOCAL lnMayHaveMore
LOCAL lcSBase64
LOCAL lnCount
lnSuccess = 0
loSb = CreateObject('Chilkat.StringBuilder')
loBd = CreateObject('Chilkat.BinData')
loSbFilename = CreateObject('Chilkat.StringBuilder')
lnIndex = 1
lnSuccess = loSb.LoadFile("qa_data/html/oresp body.txt","utf-8")
* Assume success.
? "length = " + STR(loSb.Length)
lnMayHaveMore = 1
DO WHILE lnMayHaveMore = 1
* Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
lcSBase64 = loSb.GetBetween("data:image/png;base64,","'")
* If nothing is found, then we'll exit the loop because there are no more.
lnMayHaveMore = loSb.LastMethodSuccess
IF (loSb.LastMethodSuccess = 1) THEN
* Found something.
* Load into bd and save.
lnSuccess = loBd.LoadEncoded(lcSBase64,"base64")
loSbFilename.SetString("qa_output/png_")
loSbFilename.AppendInt(lnIndex)
loSbFilename.Append(".png")
loBd.WriteFile(loSbFilename.GetAsString())
* Replace "data:image/png;base64" with "data:image-png;base64" so the next iteration finds the next occurrence.
loSb.ReplaceFirst("data:image/png;base64","data:image-png;base64")
ENDIF
lnIndex = lnIndex + 1
ENDDO
* Restore our replacements..
lnCount = loSb.Replace("data:image-png;base64","data:image/png;base64")
? "All done."
RELEASE loSb
RELEASE loBd
RELEASE loSbFilename