Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I would like to be able to reduce the quality of the photos I have in a directory through some sort of automation. One of the requirements is that I cannot change the dimensions of the photo. The way I have been doing it so far is just by

  • opening each photo in preview
  • choosing save as
  • selecting jpeg
  • selecting a low quality
  • saving

This can take a long time when I have over 100 photos. Is there an easy way to automate this with AppleScript, or through any other sort of means?

share|improve this question
    
+1 Great question! –  daviesgeek Sep 20 '11 at 4:13
add comment

1 Answer

up vote 6 down vote accepted

Here is a simple Applescript that uses the Image Events built into OS X. Add salt to taste.

property kFileList : {}

tell application "Finder"
    set theSourceFolder to choose folder
    set theDestinationFolder to choose folder

    my createList(theSourceFolder)

    set lastItem to (count kFileList)
    repeat with thisItem from 1 to lastItem
        set theFile to (theSourceFolder & item thisItem of kFileList) as string

        tell application "Image Events"
            set theImage to open theFile
            save theImage as JPEG2 in ((theDestinationFolder & item thisItem of kFileList & ".jpg") as string) with compression level high
        end tell
    end repeat
end tell

on createList(mSource_folder)
    set item_list to ""

    tell application "System Events"
        set item_list to get the name of every disk item of mSource_folder
    end tell

    set item_count to (get count of items in item_list)

    repeat with i from 1 to item_count
        set the_properties to ""

        set the_item to item i of the item_list
        set the_item to ((mSource_folder & the_item) as string) as alias

        tell application "System Events"
            set file_info to get info for the_item
        end tell

        if visible of file_info is true then
            set file_name to displayed name of file_info
            set end of kFileList to file_name
            if folder of file_info is true then
                my createList(the_item)
            end if
        end if

    end repeat
end createList

Acorn is also good for cheap and easy automation via Applescript that will offer more choices than what Image Events, but Image Events is free so there's that

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.