Chen Li Yong
Chen Li Yong

Reputation: 6097

How to supply a base 64 image data string into a UIWebView?

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

Answers (2)

Nhat Dinh
Nhat Dinh

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

Antony Raphel
Antony Raphel

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

Related Questions