отображать изображения в теге <img>с помощью nsdata - PullRequest
4 голосов
/ 26 сентября 2011

это возможно? мое приложение загрузит 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];
    }

затем я фильтрую изображения w / c для отображения внутри uiview и изображения w / c для отображения внутри uiwebview. Я отображаю изображения внутри uiview так:

    UIImage *imageForThisQuestion = [[UIImage alloc]initWithData:[imagesData       
    objectAtIndex:indexOfThisImage]];

это хорошо работает внутри uiview. но как мне отобразить некоторые изображения внутри uiwebview? я могу использовать тег здесь? а также мое uiwebview может отображаться в следующем формате:

    "blah blah blah blah <img src...> blah blah blah <img src...>"

Ответы [ 3 ]

6 голосов
/ 26 сентября 2011

Вы не хотите сохранять изображение в файле для ссылки на него в формате html, например, image, верно?Вы можете использовать схему URI данных , чтобы закодировать ваше изображение в URI, и использовать тег img, например

image

Читать слышать как base64 кодировать NSData вашего изображения.

0 голосов
/ 21 августа 2016

Для тех, кто хочет получить быстрый и четкий ответ и кратко прочитать всю статью, представленную выше, этот код вы хотите использовать:

NSString* imgInBase64 = [imageObject base64EncodedStringWithOptions:0];
NSString* imgSrcValue = [@"data:image/png;base64," stringByAppendingString:imgInBase64]

и вы вводите эту строку в любой элемент <img src="{{imgSrcValue}}">. Обратите внимание на значение 0 для base64EncodedStringWithOptions, которое может помочь вам избежать сбоев с изображениями, которые производят огромные строки Base64. Также вы можете изменить png на любой поддерживаемый формат изображения

0 голосов
/ 26 сентября 2011

Вы должны загрузить HTML-код с правильным baseURL:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];

Тогда в вашем HTML-коде:

<img src="myimage.png">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...