Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

loSb = createobject("CkStringBuilder")
loBd = createobject("CkBinData")
loSbFilename = createobject("CkStringBuilder")
lnIndex = 1

llSuccess = loSb.LoadFile("qa_data/html/oresp body.txt","utf-8")
// Assume success.
? "length = " + str(loSb.Length)

llMayHaveMore = .T.
do while llMayHaveMore = .T.

    // 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.
    llMayHaveMore = loSb.LastMethodSuccess

    if (loSb.LastMethodSuccess = .T.) then
        // Found something.
        // Load into bd and save.
        llSuccess = 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