Я хотел бы записать изображение профиля контакта в файл.
1) как читать изображение в формате TIFF?
Словарь описывает свойство изображения: image (*TIFFPicture* or missing value) : Image for person.
В словаре TIFFPicture есть ссылка, но когда я нажимаю на нее, никакой дополнительной информации нет. При чтении значение кажется <>
. Как я могу прочитать это как изображение?
2) как записать изображение в формате TIFF?
При записи в файл какой формат указывать? В словаре сказано: [as: type class] : how to write the data: as text, data, list, etc.
В случае, если для записи изображения требуется as:
, какой тип указать? Когда я использую, например. as: 'data'
ошибка "Не удается преобразовать типы".
Пример:
var app = Application.currentApplication();
app.includeStandardAdditions = true;
myPeople = Application("Contacts").people.whose({ _and: [{lastName: "Doe" },{firstName: "John"}] });
for (i in myPeople) {
person = myPeople[i];
if (person.image() == null) continue;
var data = person.image();
var file = Path("/var/tmp/test.tiff");
app.openForAccess(file, { writePermission: true });
app.setEof(file, {to:0} ); // reset length
app.write(data, {
to: file,
//as: 'data',
});
app.closeAccess(file);
// result: file with 2 bytes ("<>")
}
data
, когда вы просматриваете ее в SE? Соединение JXA типов данных событий Apple в/из JavaScript имеет различные дефекты, поэтому возможно, что 1. JXA не знает, как обрабатывать дескрипторtypeTIFF
, возвращаемый Contacts при вызовеperson.image()
, или 2. он не знает, как его упаковать. значение обратно в дескриптор события Apple в последующей командеwrite
. Лучше всего сначала написать свой сценарий на AppleScript: если он работает там, вы знаете, что JXA разоряется и дерьмо; если он не работает и в AS, проблема, вероятно, в другом месте (например, в контактах). - person foo   schedule 07.08.2016"<>"
(или null, если изображения нет). Прошло некоторое время с тех пор, как я использовал AppleScript, поэтому я надеялся решить эту проблему в JXA. - person wivku   schedule 07.08.2016~/Library/Application Support/AddressBook/Images
, но, похоже, это уже не так. - person wivku   schedule 07.08.2016