in 3 Minuten eine Foto-Präsentationen mit iPhoto und Keynote erstellen

Heute ein Tipp aus der Abteilung "Nützliches": Präsentationen mit Photos oder Screenshot in wenigen Minuten erstellen. Ein kleines Apple Script hilft dabei die mühsame Arbeit des Platzieren der Bilder zu automatisieren.

Viele kennen das Thema. Wie mache ich aus ein paar Photos oder Screenshots schnell eine Präsentation. Da schnippselt man Bilder - copy & pasted diese einzeln in ein Präsentationsprogramm und nach Stunden Arbeit ist man ziemlich frustriert und fertig.

Fertig erstellte Keynote mit den Bildern aus iPhoto automatisiert mit dem Apple Script

PDF der Keynote

Und Die eigentliche Arbeit, nämlich das Dichten der Worte und Editieren hat noch gar nicht angefangen. Wenn man mit Apple OSX arbeitet, und iPhoto und Keynote hat, dann gibt es hier einen praktischen Tipp.

Das Erstellen von Brainstorming / Recherche Präsentationen geht so:

  • Mit Annotate (aus dem Mac App Store) werden Screenshots gemacht. Ich verwende das oft bei der Web-Recherche, Ideensammlung und Brainstorming.
  • Wenn ich mein Bild und Screenshot Material fertig zusammengetragen habe, kopiere ich die Bilder aus Skitch in einen temporären Folder am Desktop. Script an - man braucht nur den Apple Script Editor aufmachen und den Code rein pasten. Eine neue Keynote Präsentation wird erstellt mit jeweils einem Bild als Slide (verwende Version Keynote 7.3.1). Die Keynote Slides sind 1280x720px gross. Das kann man auf die eigenen Bedürfnisse anpassen.

Hier der Code des Apple Skript für die Umwandlung der Bilder aus einem Folder in Keynote Slides:

tell application "Keynote"
    activate
    if playing is true then tell the front document to stop

    set theseImageFiles to ¬
        (choose file of type "public.image" with prompt ¬
            "Select the image file(s) to import:" default location ¬
            (path to pictures folder) with multiple selections allowed)

    display dialog "Scale the images using which method:" buttons ¬
        {"Cancel", "Scale to Fill", "Default (Fit & Center)"} default button 3
    if the button returned of the result is "Scale to Fill" then
        set scaleToFill to true
    else
        set scaleToFill to false
    end if

    repeat with i from 1 to the count of theseImageFiles
        set thisImageFile to item i of theseImageFiles
        if not (exists document 1) then
            set thisDocument to make new document
            set thisSlide to the first slide of thisDocument
            set the base slide of thisSlide to master slide "Blank" of thisDocument
        else
            tell front document
                set thisSlide to make new slide with properties ¬
                    {base slide:master slide "Leer"}
            end tell
        end if
        my addImageFileToSlide(thisSlide, thisImageFile, scaleToFill)
    end repeat

end tell

on addImageFileToSlide(thisSlide, thisImageFile, scaleToFill)
    tell application "Keynote"
        try
            activate
            set queryResult to my getImageDimensions(POSIX path of thisImageFile)
            if queryResult is false then
                error number 10000
            else
                copy queryResult to {imageWidth, imageHeight}
            end if
            tell front document
                set documentWidth to its width
                set documentHeight to its height
            end tell
            tell thisSlide
                if scaleToFill is false then
                    set thisImage to make new image with properties {file:thisImageFile}
                    tell thisImage
                        set thisImageWidth to its width
                        set thisImageHeight to its height
                        -- center image
                        set position of it to ¬
                            {(documentWidth - thisImageWidth) / 2 ¬
                                , (documentHeight - thisImageHeight) / 2}
                    end tell
                else -- scale to fill
                    -- figure new image height based on setting new image width to slide width
                    set newImageHeight to (imageHeight * documentWidth) / imageWidth
                    -- check to see if new image height is greater than or equal to document height
                    if newImageHeight is greater than or equal to documentHeight then
                        set newImageWidth to documentWidth
                        -- center image vertically
                        set verticalOffset to ((newImageHeight - documentHeight) / 2) * -1
                        set horizontalOffset to 0
                    else
                        -- scale image height to match slide height
                        set newImageHeight to documentHeight
                        set newImageWidth to (documentHeight * imageWidth) / imageHeight
                        -- center image horizontally
                        set verticalOffset to 0
                        set horizontalOffset to ((newImageWidth - documentWidth) / 2) * -1
                    end if
                    -- import, scale, and position image
                    set thisImage to make new image with properties ¬
                        {file:thisImageFile ¬
                            , width:newImageWidth ¬
                            , height:newImageHeight ¬
                            , position:{horizontalOffset, verticalOffset}}
                end if
            end tell
        on error errorMessage number errorNumber
            if errorNumber is not -128 then
                display alert errorNumber message errorMessage
            end if
            error number -128
        end try
    end tell
end addImageFileToSlide

on getImageDimensions(thisImageFilePOSIXPath)
    try
        set imageWidth to ¬
            (do shell script "mdls -raw -name kMDItemPixelWidth " & ¬
                quoted form of thisImageFilePOSIXPath) as integer
        set imageHeight to ¬
            (do shell script "mdls -raw -name kMDItemPixelHeight " & ¬
                quoted form of thisImageFilePOSIXPath) as integer
        return {imageWidth, imageHeight}
    on error
        return false
    end try
end getImageDimensions

Wahnsinn, das Ganze hat nur 3 Minuten gedauert!!

Als Produkt gibt es eine fertige Keynote Präsentation die man hervorragend als PDF Datei exportieren kann und natürlich weiter verarbeiten kann. Die PostIT Funktion von Keynote mag ich ganz gerne um meine Ideen abzusenfen.

Solch ein Dokument, am Anfang einer kreativ Session erstellt, ist oftmals ein herrliches nützliches visuelles Referenz Dokument. Später im Projekt (in der Performance Phase) hat man selten den Kopf frei für eine detaillierte Web-Recherche, und ist froh wenn man sich ein paar Ideen aus dem visuellen Brainstorming Dokument holen kann.

Natürlich kann man auch die Urlaubsbilder in eine Keynote Präsentation umwandeln. Dann kann man mit den Kollegen einen Dia-Abend in der Mittagspause machen. ;)

Author: , igumbi.com . Ich bin auf twitter zu finden: @smtm, und als roland.oth auf Facebook

igumbi Hotelsoftware - jetzt unverbindlich probieren

Hotelsoftware Demo: System Übersicht der Funktionen

igumbi ist eine online Hotelsoftware mit einem einfachen und schnellen Buchungstool für Ihre Website.

Wir steigern Ihre provisionsfreien Direktbuchungen. Sie sparen Zeit und haben auch mit der iPhone App Zugriff auf Ihre Daten.

1-300x250-hand-bp-hotel

Diese Artikel könnten Sie auch interessieren:

Kommentare

Martin Sundermann
vor fast 5 Jahren

Moin, ich habe gerade diesen Tip gefunden. Genau danach habe ich gesucht! Habe den Script Text kopiert und in Script Editor gepastet. Ich bekomme allerdings zu Zeile 15 zum 5. Wort (photoListRef) eine Syntaxmeldung "Expected Zeilenende, etc. but found Identifizier." Ich bin leider nicht so fit in der Editor-Sprache und weiß nicht, was das bedeuten soll.

Roland Oth https://www.igumbi.com/de/blog
vor fast 5 Jahren

Kann sehr gut sein das diese Apple Script Dinger im aktuellen OSX Mavericks nicht mehr gehen. Der Artikel ist auch schon ca. 3 Jahre alt.

Kommentar hinzufügen

 erforderlich

 erforderlich, wird nicht publiziert


Tags

tipp

Cookies helfen uns bei der Bereitstellung unserer Dienste. Durch die Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies setzen. Datenschutzerklärung & Cookies