这可能吗?我的应用程序将从服务器下载一个 zip 文件,并将所有图像保存在一个数组中,如下所示:
ZipReadStream *read = [unzipFile readCurrentFileInZip];
NSMutableData *data = [[NSMutableData alloc] initWithLength:info.length];
int bytesRead= [read readDataWithBuffer:data];
if(bytesRead > 0)
{
[imagesData addObject:data];
[imagesName addObject:info.name];
}
然后我过滤要在 uiview 内显示的 w/c 图像和要在 uiwebview 内显示的 w/c 图像。我在 uiview 中显示图像,如下所示:
UIImage *imageForThisQuestion = [[UIImage alloc]initWithData:[imagesData
objectAtIndex:indexOfThisImage]];
这在 uiview 中工作得很好。但如何显示 uiwebview 中的一些图像?我可以在这里使用标签吗?我的 uiwebview 也可能以这种格式出现:
"blah blah blah blah <img src...> blah blah blah <img src...>"
您不想将图像保存在文件中以在 html 中引用它,如 < img src="myimage.png">,对吗?您可以使用 data URI 方案 将图像编码为 URI,并使用像
< img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" >
阅读此处如何对图像的 NSData 进行 Base64 编码。
对于任何想要快速清晰的答案并快速阅读上面提供的整篇文章的人,这是您想要使用的代码:
NSString* imgInBase64 = [imageObject base64EncodedStringWithOptions:0];
NSString* imgSrcValue = [@"data:image/png;base64," stringByAppendingString:imgInBase64]
然后将该字符串注入到任何
<img src="{{imgSrcValue}}">
元素中。请注意 base64EncodedStringWithOptions 的 0 值,这可以帮助您避免生成巨大 Base64 字符串的图像崩溃。您还可以将 png 更改为任何支持的图像格式
您必须使用正确的
baseURL
: 加载 HTML 代码
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];
然后,在您的 HTML 代码中:
<img src="myimage.png">