Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
$sb = chilkat::CkStringBuilder->new();
$bd = chilkat::CkBinData->new();
$sbFilename = chilkat::CkStringBuilder->new();
$index = 1;
$success = $sb->LoadFile("qa_data/html/oresp body.txt","utf-8");
# Assume success.
print "length = " . $sb->get_Length() . "\r\n";
$mayHaveMore = 1;
while ($mayHaveMore == 1) {
# Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
$sBase64 = $sb->getBetween("data:image/png;base64,","'");
# If nothing is found, then we'll exit the loop because there are no more.
$mayHaveMore = $sb->get_LastMethodSuccess();
if ($sb->get_LastMethodSuccess() == 1) {
# Found something.
# Load into bd and save.
$success = $bd->LoadEncoded($sBase64,"base64");
$sbFilename->SetString("qa_output/png_");
$sbFilename->AppendInt($index);
$sbFilename->Append(".png");
$bd->WriteFile($sbFilename->getAsString());
# Replace "data:image/png;base64" with "data:image-png;base64" so the next iteration finds the next occurrence.
$sb->ReplaceFirst("data:image/png;base64","data:image-png;base64");
}
$index = $index + 1;
}
# Restore our replacements..
$count = $sb->Replace("data:image-png;base64","data:image/png;base64");
print "All done." . "\r\n";