从imageView添加图像以返回HTML字符串的正确方法

时间:2013-01-23 11:16:06

标签: iphone html ios objective-c

我正在打印一个视图,我自定义该视图以从imageView打印一些文本和图像。

以下代码有效,但不会出现图像,而是显示空白框。

 -(NSString *)prepareHTMLText {

    NSMutableString *body = [NSMutableString stringWithString:@"<!DOCTYPE html><html><body>"];


        [body appendString:@"<h2>Ingredients</h2>"];
        [body appendFormat:@"<p>%@ %@</p>", @"text", @"TEStText"];

        [body appendFormat:@"<img src=\"%@\"/>", myImageView.image];

    [body appendString:@"</body></html>"];
    return body;
}

4 个答案:

答案 0 :(得分:0)

你不能直接将这样的图像分配给你的身体。你需要做下面的

  1. myImageView.image转换为NSData
  2. 使用唯一名称将NSData的内容存储在文档目录中。
  3. 将存储在文档目录中的图像路径传递给正文。
  4. 多数民众赞成。

答案 1 :(得分:0)

[body appendFormat:@"<img src=\"%@\"/>", myImageView.image];

您想要附加此图像的路径,但在这里您只是附加了图像的描述。 (默认情况下,它包含图像类和大小等内容。)。似乎输出字符串将被发送到webview(或浏览器?)。 webview无法识别和查找图像。您需要为webview指定正确的路径才能找到图像。

答案 2 :(得分:0)

希望您拥有捆绑中的图像,因此请获取图像的文件路径并使用该路径而不是myImageView.image。希望这会对你有所帮助。

答案 3 :(得分:0)

download Base64.h and .m files from here将它们拖到你的.h文件中的import.import Base64.h中,然后尝试下面的代码吧

-(NSString *)prepareHTMLText {
    NSString *str1 = [Base64 encode:UIImagePNGRepresentation(myImageView.image)];
    NSMutableString *body = [NSMutableString stringWithString:@"<!DOCTYPE html><html><body>"];
    [body appendString:@"<h2>Ingredients</h2>"];
    [body appendFormat:@"<p>%@ %@</p>", @"text", @"TEStText"];
    [body appendFormat:@"<img src=\"data:image/png;base64,%@\" alt=\"\" height=\"100\" width=\"100\"/>",str1];
    [body appendString:@"</body></html>"];
    return body;
}

试试这个