Отображение фотографий vCard в контактах Windows

Вслед за vCard 2.1 добавляю фотографии в vCards. Я кодирую изображение, полученное по URL-адресу, а затем добавляю закодированное значение в нужное место в vCard. По-видимому, это правильно отображает фотографию для всех программ, которые могут открывать визитные карточки, кроме программы Windows Contacts в Windows 7 (вероятно, не работает и для более новых версий Windows).

Насколько я могу судить, приведенный ниже фрагмент должен отображать фотографию vcard при открытии в контактах 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 на 240 пикселей
  • добавление значения URL-адреса изображения в файл вместо закодированного значения

У кого-нибудь есть идеи?


person Don    schedule 17.02.2017    source источник
comment
оставив это, по крайней мере, на некоторое время, но, похоже, консенсус заключается в том, что невозможно отобразить фотографию на визитной карточке, которая открыта в контактах Windows, по крайней мере, для Windows 7+. пожалуй напишу отчет об ошибке   -  person Don    schedule 23.02.2017


Ответы (2)


  • Версия 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:<url goes here>

person Michael    schedule 19.02.2017
comment
Я испробовал все ваши предложения, и, к сожалению, они не сработали, я все еще вижу пустой заполнитель изображения, когда открываю vCard в контактах Windows. Я начинаю думать, что это может быть ошибка в Контактах, или Контакты не поддерживают изображения в файлах vCard (только в файлах .CONTACT, которые являются XML) - person Don; 20.02.2017