Objective-C
Objective-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 Objective-C Downloads
#import <CkoStringBuilder.h>
#import <CkoBinData.h>
#import <NSString.h>
BOOL success = NO;
CkoStringBuilder *sb = [[CkoStringBuilder alloc] init];
CkoBinData *bd = [[CkoBinData alloc] init];
CkoStringBuilder *sbFilename = [[CkoStringBuilder alloc] init];
int index = 1;
success = [sb LoadFile: @"qa_data/html/oresp body.txt" charset: @"utf-8"];
// Assume success.
NSLog(@"%@%d",@"length = ",[sb.Length intValue]);
BOOL mayHaveMore = YES;
while (mayHaveMore == YES) {
// Get the base64 between the 1st occurrence "data:image/png;base64," and "'"
NSString *sBase64 = [sb GetBetween: @"data:image/png;base64," endMark: @"'"];
// If nothing is found, then we'll exit the loop because there are no more.
mayHaveMore = sb.LastMethodSuccess;
if (sb.LastMethodSuccess == YES) {
// Found something.
// Load into bd and save.
success = [bd LoadEncoded: sBase64 encoding: @"base64"];
[sbFilename SetString: @"qa_output/png_"];
[sbFilename AppendInt: [NSNumber numberWithInt: 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" replacement: @"data:image-png;base64"];
}
index = index + 1;
}
// Restore our replacements..
int count = [[sb Replace: @"data:image-png;base64" replacement: @"data:image/png;base64"] intValue];
NSLog(@"%@",@"All done.");