Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

set sb [new_CkStringBuilder]

set bd [new_CkBinData]

set sbFilename [new_CkStringBuilder]

set index 1

set success [CkStringBuilder_LoadFile $sb "qa_data/html/oresp body.txt" "utf-8"]
# Assume success.
puts "length = [CkStringBuilder_get_Length $sb]"

set mayHaveMore 1
while {$mayHaveMore == 1} {

    # Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
    set sBase64 [CkStringBuilder_getBetween $sb "data:image/png;base64," "'"]

    # If nothing is found, then we'll exit the loop because there are no more.
    set mayHaveMore [CkStringBuilder_get_LastMethodSuccess $sb]

    if {[CkStringBuilder_get_LastMethodSuccess $sb] == 1} then {
        # Found something.
        # Load into bd and save.
        set success [CkBinData_LoadEncoded $bd $sBase64 "base64"]

        CkStringBuilder_SetString $sbFilename "qa_output/png_"
        CkStringBuilder_AppendInt $sbFilename $index
        CkStringBuilder_Append $sbFilename ".png"

        CkBinData_WriteFile $bd [CkStringBuilder_getAsString $sbFilename]

        # Replace "data:image/png;base64" with "data:image-png;base64" so the next iteration finds the next occurrence.
        CkStringBuilder_ReplaceFirst $sb "data:image/png;base64" "data:image-png;base64"
    }

    set index [expr $index + 1]
}

# Restore our replacements..
set count [CkStringBuilder_Replace $sb "data:image-png;base64" "data:image/png;base64"]

puts "All done."

delete_CkStringBuilder $sb
delete_CkBinData $bd
delete_CkStringBuilder $sbFilename