Reputation: 6097
I have a base64 image data in NSString. I want to straight display this in a UIWebView. How can I achieve this?
What I know so far is like this:
NSString * imageStr = /* some base64 image string */
NSData * imageData = [[NSData alloc]initWithBase64EncodedString:imageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
[webView loadData:imageData
MIMEType:@"image/jpeg;base64"
textEncodingName:@"utf-8"
baseURL:[NSURL URLWithString:@""]];
But it doesn't show anything on the UIWebView. What's the problem? Thanks.
My references so far:
Upvotes: 2
Views: 1385
Reputation: 3447
Change your MIMEType to "image/jpg" its will work.
NSString * imageStr = /* some base64 image string */
NSData * imageData = [[NSData alloc]initWithBase64EncodedString:imageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
- [webView loadData:imageData
MIMEType:@"image/jpeg;base64"
+ [webView loadData:imageData
MIMEType:@"image/jpg"
textEncodingName:@"utf-8"
baseURL:[NSURL URLWithString:@""]];
Upvotes: 1
Reputation: 2078
try like this:
NSString * imageStr = [self encodeToBase64String:[UIImage imageNamed:@"image_name"]];
NSData *data = [[NSData alloc]initWithBase64EncodedString:imageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
[_webview loadData:data
MIMEType:@"image/jpg"
textEncodingName:@"utf-8"
baseURL:[NSURL URLWithString:@""]];
- (NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
Upvotes: 0