Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Extract data:image/png;base64 from HTMLDemonstrates how to extract base64 image data from HTMl and save to files.
load ./chilkat.dll 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 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.