2012-02-05 125 views
2

我需要在vcard文件中包含图像。图像应该是二进制格式。我创建的图像数据如下:将图像数据转换为vcard的二进制文本

vcardString = [vcardString stringByAppendingFormat:@"PHOTO;ENCODING=b;TYPE=JPEG:%@\n", [imageData base64EncodedString]]; 

vcardString = [vcardString stringByAppendingFormat:@"PHOTO;ENCODING=b;TYPE=JPEG:%@\n", [imageData description]]; 

如何得到的图像数据的任何忠告:

NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"Pic1"], 1.0); 

我已经使用以下两种方法失败尝试编码正确编码为二进制将不胜感激。谢谢

+0

您是否得到了解决此问题的解决方案?我在同一个问题上需要帮助。 – 2012-05-08 09:20:32

回答

1

根据to this blog entry I found(它指向this spec),它看起来像你试图做的第二种形式应该工作。

将您的ENCODING=b更改为ENCODING=BASE64,看看是否有所作为。

+0

不幸的是,这不起作用。将电子名片导入地址簿时,图像仍然无法识别。我发现虽然在规范中超过75个字符应该根据[MIME-DIR]“折叠”,但不知道这意味着什么。 – RunLoop 2012-02-06 05:57:04

+2

@RunLoop这意味着文件中的每一行应该是75个字符。为了表明下一行是延续,请使用*单个空格*将其缩进。实际上,您会在第一行获得75个字符的内容,然后是一串带有空格和74个字符内容的行。请参阅[电子名片验证器](https://github.com/l0b0/vCard-module)(免责声明:我是作者)。 – l0b0 2012-02-06 10:26:34

+0

@ l0b0在经过了几个小时的挣扎之后,我终于在一个小时前找到了答案。如果只有我早点找到你的文章。谢谢你张贴虽然:) – RunLoop 2012-02-06 10:41:48

1

OS X v10.11和iOS 9引入了CNContactVCardSerialization,这大大简化了将图像嵌入到VCard中的过程。

+0

@ Jesper Christensen它是给null – 2016-09-22 14:23:26

相关问题