Как я могу выбрать изображения из iPhoto в мое приложение Cocoa с помощью Applescript / Automator

#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