将图像数据转换为vcard的二进制文本

时间:2012-02-05 20:37:23

标签: iphone ios cocoa-touch ipad vcard

我需要在vcard文件中包含图像。图像应该是二进制格式。我按如下方式创建图像数据:

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

我使用以下两种方法尝试编码失败:

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

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

有关如何将图像数据正确编码为二进制的任何建议都将受到赞赏。感谢

2 个答案:

答案 0 :(得分:1)

根据to this blog entry I found(指向this spec),看起来你想要做的第二种形式应该起作用。

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

答案 1 :(得分:1)

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