【问题标题】:Displaying vCard photos in Windows Contacts在 Windows 联系人中显示 vCard 照片
【发布时间】:2017-02-17 18:51:22
【问题描述】:

在 vCard 2.1 之后,我将照片添加到 vCard。我正在对从 URL 获取的图像进行编码,然后将编码值添加到 vCard 中的适当位置。除了 Windows 7 上的 Windows 联系人程序(可能也不适用于较新版本的 Windows)之外,所有可以打开 vCard 的程序都可以正确显示照片。

据我所知,下面的 sn-p 在 Windows 联系人中打开时应该会显示电子名片照片:

BEGIN:VCARD
VERSION:2.1
N;CHARSET=ISO-8859-1:Lastname;Firstname;
FN;CHARSET=ISO-8859-1:Firstname Lastname
ORG;CHARSET=ISO-8859-1: Organization LLP
PHOTO;ENCODING=b;TYPE=jpg: <base64 encoded image as one line>
TITLE;CHARSET=ISO-8859-1:Position
TEL;WORK;VOICE:+1 999 999 9999
END:VCARD

所有其他信息都显示在 Windows 联系人中,但不显示照片。显示标准空白图像占位符。

我试过了

  • ENCODING=BASE64
  • 完全省略 ENCODING 关键字
  • 完全删除 TYPE 关键字
  • 专门使用 240 x 240 像素的图片
  • 在文件中添加图像 URL 值而不是编码值

有人有什么想法吗?

【问题讨论】:

  • 至少暂时搁置一下,但共识似乎是不可能在 Windows 联系人中打开的 vCard 中显示照片,至少对于 Windows 7+ 来说是这样。我可能会提交错误报告

标签: windows windows-7 contacts vcf-vcard


【解决方案1】:
  • 2.1 版使用ENCODING=BASE64。
  • 在 PHOTO 属性后放置一个空行。 Outlook 需要这个,所以联系人也可能需要。
  • 将所有参数名称/值大写。我知道 Windows 联系人存在一个兼容性问题,如果参数值是小写,它就无法识别它。
  • 去掉base64数据前的空格符。
  • 尝试将 TYPE 参数设置为 JPEG。
  • 您已正确编码图像数据,对吗?尝试使用在线解码器进行确认。

更正的属性:

PHOTO;ENCODING=BASE64;TYPE=JPEG:<base64 encoded image as one line>
[empty line]

根据规范,如果您有 URL,则应将 VALUE 参数设置为 URL。

PHOTO;TYPE=JPEG;VALUE=URL:&lt;url goes here&gt;

【讨论】:

  • 我尝试了您的所有建议,但不幸的是它们没有奏效,当我在 Windows 联系人中打开 vCard 时,我仍然只看到空白图像占位符。我开始认为这可能是联系人中的错误或联系人不支持 vCard 文件中的图像(仅在 .CONTACT 文件中,它们是 XML)
【解决方案2】:

我在研究这个问题时遇到了你的帖子,我能够成功地找到实现这一目标的正确方法。

Bellow 是一个自包含的 v-card 示例,其中包含 96x96 嵌入式 red.gif 图像作为 PHOTO。

https://www.rfc-editor.org/rfc/rfc2426#section-3.1.4

请务必记下 VERSION 行和 PHOTO 行。这目前在 Outlook365 中有效。

BEGIN:VCARD
VERSION:3.0
N:Gump;Forrest;;Mr.;
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;ENCODING=BASE64;TYPE=GIF:R0lGODdhYABgAPAAALccHMlFJiH5BAEAAAEALAAAAABgAGAAAAJuhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLiIUgAAOw==
TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212
TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212
ADR;TYPE=WORK;PREF=1;LABEL="100 Waters Edge\nBaytown\, LA 30314\nUnited States of America":;;100 Waters Edge;Baytown;LA;30314;United States of America
ADR;TYPE=HOME;LABEL="42 Plantation St.\nBaytown\, LA 30314\nUnited States of America":;;42 Plantation St.;Baytown;LA;30314;United States of America
EMAIL:forrestgump@example.com
REV:20080424T195243Z
x-qq:21588891
END:VCARD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多