2012-02-05 74 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

相關問題