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 <C_CkStringBuilderW.h>
#include <C_CkBinDataW.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilderW sb;
HCkBinDataW bd;
HCkStringBuilderW sbFilename;
int index;
BOOL mayHaveMore;
const wchar_t *sBase64;
int count;
success = FALSE;
sb = CkStringBuilderW_Create();
bd = CkBinDataW_Create();
sbFilename = CkStringBuilderW_Create();
index = 1;
success = CkStringBuilderW_LoadFile(sb,L"qa_data/html/oresp body.txt",L"utf-8");
// Assume success.
wprintf(L"length = %d\n",CkStringBuilderW_getLength(sb));
mayHaveMore = TRUE;
while (mayHaveMore == TRUE) {
// Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
sBase64 = CkStringBuilderW_getBetween(sb,L"data:image/png;base64,",L"'");
// If nothing is found, then we'll exit the loop because there are no more.
mayHaveMore = CkStringBuilderW_getLastMethodSuccess(sb);
if (CkStringBuilderW_getLastMethodSuccess(sb) == TRUE) {
// Found something.
// Load into bd and save.
success = CkBinDataW_LoadEncoded(bd,sBase64,L"base64");
CkStringBuilderW_SetString(sbFilename,L"qa_output/png_");
CkStringBuilderW_AppendInt(sbFilename,index);
CkStringBuilderW_Append(sbFilename,L".png");
CkBinDataW_WriteFile(bd,CkStringBuilderW_getAsString(sbFilename));
// Replace "data:image/png;base64" with "data:image-png;base64" so the next iteration finds the next occurrence.
CkStringBuilderW_ReplaceFirst(sb,L"data:image/png;base64",L"data:image-png;base64");
}
index = index + 1;
}
// Restore our replacements..
count = CkStringBuilderW_Replace(sb,L"data:image-png;base64",L"data:image/png;base64");
wprintf(L"All done.\n");
CkStringBuilderW_Dispose(sb);
CkBinDataW_Dispose(bd);
CkStringBuilderW_Dispose(sbFilename);
}