Unicode C++
Unicode C++
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 Unicode C++ Downloads
#include <CkStringBuilderW.h>
#include <CkBinDataW.h>
void ChilkatSample(void)
{
bool success = false;
CkStringBuilderW sb;
CkBinDataW bd;
CkStringBuilderW sbFilename;
int index = 1;
success = sb.LoadFile(L"qa_data/html/oresp body.txt",L"utf-8");
// Assume success.
wprintf(L"length = %d\n",sb.get_Length());
bool mayHaveMore = true;
while (mayHaveMore == true) {
// Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
const wchar_t *sBase64 = sb.getBetween(L"data:image/png;base64,",L"'");
// If nothing is found, then we'll exit the loop because there are no more.
mayHaveMore = sb.get_LastMethodSuccess();
if (sb.get_LastMethodSuccess() == true) {
// Found something.
// Load into bd and save.
success = bd.LoadEncoded(sBase64,L"base64");
sbFilename.SetString(L"qa_output/png_");
sbFilename.AppendInt(index);
sbFilename.Append(L".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(L"data:image/png;base64",L"data:image-png;base64");
}
index = index + 1;
}
// Restore our replacements..
int count = sb.Replace(L"data:image-png;base64",L"data:image/png;base64");
wprintf(L"All done.\n");
}