#applescript #automator #iphoto
#applescript #automator #iphoto
Вопрос:
У меня есть приложение для редактирования изображений Cocoa Mac, которое принимает в качестве входных данных несколько файлов изображений (jpeg, png, tiff, gif и т.д.). Я хотел бы предоставить пользователю кнопку в моем приложении, чтобы получить эти входные файлы изображений из iPhoto.
Я хотел бы, чтобы диалоговое окно / всплывающее окно с изображениями iPhoto открывалось, когда пользователь нажимает эту кнопку. Затем пользователь может выбрать некоторые изображения в этом диалоговом окне / всплывающем окне. При закрытии диалогового окна после выбора я хотел бы получить пути к выбранным изображениям.
Пожалуйста, подскажите, как я могу этого добиться.
Отредактировано Abizern после комментария к моему ответу
Я бы предпочел не использовать сторонний фреймворк — есть ли способ сделать это с помощью рабочих процессов Applescript или Automator из моего приложения?
Ответ №1:
Взгляните на Karelia iMedia Browser, который вы можете добавить в качестве фреймворка в свой проект.
Не только изображения iPhoto, но также изображения на вашем жестком диске и изображения с Flickr.
Комментарии:
1. Я бы не хотел использовать сторонний фреймворк, разве это как-то легко возможно с использованием рабочих процессов Apple script / automator
2. Тогда зачем ставить теги objective-c и Cocoa в вопросе?
Ответ №2:
Вот скрипт, который откроет сам iPhoto и позволит пользователю выбрать несколько фотографий, а затем продолжить. Надеюсь, ваша программа сможет предоставить пользователю более элегантный немодальный способ сигнализировать о том, что они закончили.
tell application "iPhoto"
activate
display alert "After you click OK, you will have 10 seconds to select some photos or albums"
delay 10
set paths to {}
repeat with s in (get selection)
set i to properties of s
if class of i is album then
repeat with p in photos of album (name of i)
copy image path of p to end of paths
end repeat
else if class of i is photo then
copy image path of i to end of paths
end if
end repeat
log paths
end tell