Pobierz iPhoto, aby ulepszyć tysiące zdjęć?

Odkryłem, że tysiące zdjęć w mojej bibliotece iPhoto nie ma odpowiednich ikon. Próbowałem odbudować bazę danych i to nie zadziałało. Jednak jedną z technik, która działa, jest po prostu kliknięcie przycisku „edytuj”, a następnie przycisku Ulepsz.

Odkryłem, że jeśli edytuję pierwsze zdjęcie z serii, mogę poprawić je wszystkie, przełączając się między przyciskiem „Ulepsz” a przyciskiem strzałki w prawo.

Czy jest jakiś sposób, aby to zautomatyzować?


person vy32    schedule 30.04.2011    source źródło


Odpowiedzi (1)


Nie korzystałem zbyt często z iPhoto, ale używam AppleScript od dłuższego czasu. Zgaduję, że przycisk Enhance znajduje się w menu Edit. Jeśli to prawda, to możesz...

tell application "System Events" to tell process "iPhoto" to click menu item "Enhance" of menu "Edit" of menu bar 1

Powiedziałeś, że masz tysiące zdjęć, które wymagają ulepszenia. AppleScript jest idealny do robienia takich rzeczy. Aby całkowicie to zautomatyzować (wczytać obrazy i je ulepszyć), można użyć kropelki, jak pokazano tutaj:

on open the_images
    repeat with i from 1 to the count of the_images
        set this_image to item i of the_images as alias --the current image
        --Verify that the file is actually an image and not just a random file
        tell application "Finder"
            if (this_image) as string does not end with ":" then --a folder, cannot use
                if the name extension of this_image is in {"jpg","tif","gif","png","psd"} then --add additional extensions as needed
                    --This is an image, so enhance it
                    my enhance(this_image)
                else
                    display dialog "The file " & name of this_image & " is not an image. It cannot be enhanced." buttons{"OK"} default button 1
                end if
            else
                display dialog "The folder " & name of this_image & " is not an image. It cannot be enhanced." buttons{"OK"} default button 1
            end if
        end tell
    end repeat
end open

on enhance(this_image)
    tell application "iPhoto"
        activate
        open this_image
    end tell
    tell application "System Events" to tell process "iPhoto" to click menu item "Enhance" of menu "Edit" of menu bar 1
    tell application "iPhoto" to close this_image
end enhance

EDYCJA: Powyższy kod nie będzie działać (nie usunąłem go, żeby pokazać, czego inni nie powinni robić), ale ten powinien...

tell application "iPhoto"
    set the_images to (get the selection) as list
    repeat with i from 1 to the count of the_images
        set this_image to item i of the_images
        my enhance()
        save this_image in this_image
    end repeat
end tell

on enhance()
    tell application "System Events" to tell process "iPhoto" to click menu item "Enhance" of menu "Edit" of menu bar 1
end enhance

Przepraszam, jeśli ten też nie działa; Jestem zupełnie nowy w iPhoto i staram się, jak mogę. :S

EDIT2: OK, przepraszam. Powyższy skrypt nie działa (nie został usunięty, aby pokazać, czego inni nie powinni robić). To prawdopodobnie nie zadziała, ale mimo wszystko spróbuj...

tell application "iPhoto"
    set these_images to (get the selection) as list
    repeat with i from 1 to the count of these_images
        set this_image to item i of these_images
        my enhance(this_image)
        save this_image in this_image
    end repeat
end tell

on enhance(this_image)
    tell application "System Events"
        tell process "iPhoto"
            keystroke return
            --possible pseudo-code
            click menu item "Edit" of menu bar 2
            click menu item "Enhance" of menu "Quick Fixes"
            --end possible pseudo-code
        end tell
     end tell
end enhance

:S

@Downvoter: Chcesz wyjaśnić?

person fireshadow52    schedule 23.07.2011
comment
To nie będzie działać z iPhoto. iPhoto nie edytuje obrazów w systemie plików. Prowadzi własną bazę zdjęć. Musisz wybrać każde zdjęcie w iPhoto, edytować je, a następnie przejść do następnego. - person vy32; 23.07.2011
comment
Przepraszam. W ogóle nie korzystałem z iPhoto. Po prostu zakładałem pewne rzeczy. :( - person fireshadow52; 23.07.2011
comment
Więc biorę drugi program, zapisuję go w skrypcie automatora, a następnie uruchamiam iphoto, wybieram zdjęcia do ulepszenia, a następnie uruchamiam skrypt automatora? - person vy32; 23.07.2011
comment
Tak, to jest pomysł. Krótka uwaga: jeśli chcesz być leniwy i mieć skrypt aktywujący sam iPhoto, po prostu wstaw activate na początku :P Jeśli nadal nie działa, po prostu daj mi znać. - person fireshadow52; 23.07.2011
comment
Dobra. To nie działa z dwóch powodów. 1) Nie robisz tego w Automatorze, robisz to w Edytorze AppleScript. 2) Błąd AppleScript: Zdarzenia systemowe zawierają błąd: Nie można uzyskać pozycji menu Ulepszenie menu Edycja paska menu 1 procesu iPhoto.. Okazuje się, że nie ma opcji menu Ulepsz. - person vy32; 24.07.2011
comment
Aby poprawić zdjęcie, 1) kliknij dwukrotnie zdjęcie. 2) Kliknij ikonę Edytuj na dolnym pasku narzędzi. 3) Kliknij przycisk Ulepsz w panelu Szybkie poprawki, który pojawi się po prawej stronie. 4) kliknij przycisk Wstecz pojawiający się w pasku nad zdjęciami, który po dwukrotnym kliknięciu na zdjęcie zmienił nazwę na tytuł wydarzenia. Nie sądzę, że Apple chce, aby ta aplikacja umożliwiała obsługę skryptów. - person vy32; 24.07.2011
comment
Na twoim miejscu sprawdziłbym słownik iPhoto w edytorze AppleScript i sprawdził, czy zawiera czasownik enhance. Jeśli tak, po prostu zmień my enhance na enhance this_image. - person fireshadow52; 24.07.2011
comment
Wow. Nauczyłeś mnie tak wiele o AppleScript. Jednak zła wiadomość. Okazuje się, że słowo „ulepszanie” nie występuje w słowniku iPhoto. Wygląda na to, że jedyne, co możesz zrobić, to edytować słowa kluczowe. - person vy32; 25.07.2011
comment
Dobrze wiedzieć, że moja odpowiedź nie poszła na marne. - person fireshadow52; 25.07.2011
comment
Nie poszło na marne, ale to nie jest odpowiedź. - person vy32; 25.07.2011