TweetFollow Us on Twitter

Performing Basic Image Manipulation...

Volume Number: 21 (2005)
Issue Number: 3
Column Tag: Programming

AppleScript Essentials

by Benjamin S. Waldie

Performing Basic Image Manipulation...

Using Your Existing Software!

This month, we're going to talk about performing some basic image manipulations with AppleScript. With the onset of the digital camera revolution comes a new set of problems for the computer user. The first thing many people realize after purchasing a digital camera is that film is essentially free, as is developing. You can take as many pictures as you like, just as long as you have ample hard drive space to store them.

While this concept seems amazing at first, you quickly realize that you now have thousands and thousands of image files to deal with. Those image files need to be downloaded, imported, renamed, filed, rotated, cropped, converted to other formats, and more! Sure, there are some tools that Apple gives us to help with these tasks, such as Image Capture and iPhoto. There are also a slew of other applications that you can download or purchase to aid with processing. However, wouldn't it be great if you could slap a few lines of code together to write your own application in order to help with your unique process? Well, using AppleScript, you can.

AppleScript is the perfect tool for automating many image-related tasks. As we have discussed in previous articles, AppleScript can be used to batch-rename files and folders. So, you could create a script that downloads your digital images into a custom folder structure and renames the images with the current date. You could create a script that opens up a folder of images in something like Photoshop and adds copyright information into the images' metadata. The possibilities are virtually limitless.

For this particular article, we're going to focus on performing some basic image manipulations, such as cropping, rotating, and resizing. We'll also look at ways you can convert your images to other formats, such as from JPEG to TIFF, and vice versa. Since AppleScript alone cannot manipulate images, you may be asking how will we do this? Using a background application named Image Events, which comes installed with Mac OS X, version 10.3 and higher, we can perform these tasks.

Image Events

Mac OS X, version 10.3 and higher comes with a background application called Image Events, which can be found in the System > Library > CoreServices folder on your hard drive.

    For those using Mac OS X, version 10.2, an application named Image Capture Scripting will allow you to perform a few of the same tasks that will be discussed in this article. Image Capture Scripting can be found in the System > Library > ScriptingAdditions folder on your hard drive.

The Image Events application can be used in conjunction with AppleScript to interact with a service in Mac OS X called SIPS, or Scriptable Image Processing Server. This service allows basic image manipulations, such as cropping and resizing to take place.

Accessing the Image Events Dictionary

In order to begin automating Image Events with AppleScript, the first thing you will want to do is open the Image Events AppleScript dictionary. This can be done by launching the Script Editor, and then selecting Image Events and clicking the Dictionary icon in the Library palette. If the Library palette is not visible, you can display it by selecting the Window > Library menu. You may also open the Image Events dictionary by selecting File > Open Dictionary... in the Script Editor.


Figure 1. The Image Events AppleScript Dictionary

Once the Image Events dictionary has been opened, you will notice several suites of classes and commands in the left-hand pane. Some of these can be ignored. For example, you won't need to use the Text Suite and you may not need to use the Disk-Folder-File Suite. You will need to access a few commands in the Standard Suite, such as open and quit. You will also want to access most of the classes and commands in the Image Suite, which contains all of the commands for actually performing image manipulations. The Image Events Suite contains some Image Events application properties, which you may want to modify, but I will not be covering them in this article.

Opening an Image

First, when working with Image Events, you need to make sure that the application is running. This is done with the launch command. For example:

tell application "Image Events"
   launch
end tell

Obviously, the next step in creating a script that will manipulate an image is to open an image. This is done by passing the image path to the open command. For example, the following sample code opens a JPEG image.

set theImage to choose file of type "JPEG"
tell application "Image Events"
   launch
   open theImage
end tell
--> image "imageName.jpg" of application "Image Events"

As you can see in the above example, the open command returns a reference to the opened image.

Accessing Properties of an Image

Once an image has been opened in Image Events, you may access certain properties of that image, such as the resolution, or the dimensions of the image. For example, the following sample code gets the resolution of a JPEG image.

set theImage to choose file of type "JPEG"
tell application "Image Events"
   launch
   set theImageReference to open theImage
   tell theImageReference
      resolution
   end tell
end tell
--> {180.0, 180.0}

This is just one example of an image property that can be retrieved with AppleScript. I encourage you to explore the other AppleScript-accessible image properties, which can be found under the image class in the Image Suite of the Image Events dictionary. One thing to note, though, is that all of these accessible properties are currently read/only properties. They cannot be changed with AppleScript.

Performing Image Manipulations

Image Events gives you the ability to perform a variety of basic image manipulations, including cropping, flipping, padding (i.e. adding a border around), rotating, and scaling. The commands for performing these, and other, image manipulations can be found under Image Suite in the Image Events dictionary. Let's take a look at one of these commands.

The example code below shows how to scale a JPEG image to a maximum height or width, based on the image's longest side. Please take note that in order to actually see the scaled image, you must save the image after it has been manipulated. This is done by using the save command. You may also want to close the image using the close command.

set theImage to choose file of type "JPEG"
tell application "Image Events"
   launch
   set theImageReference to open theImage
   tell theImageReference
      scale to size 100
      save
      close
   end tell
end tell

One thing to note is, by using the save command in the manner above, the image you opened will be overwritten with the newly scaled image. If you want to save the newly scaled image in another location, you may optionally specify a save path.

set theImage to choose file of type "JPEG"
set theOutputFolder to choose folder
tell application "Image Events"
   launch
   set theImageReference to open theImage
   tell theImageReference
      scale to size 100
      save in (theOutputFolder as string) & "Scaled Image.jpg"
      close
   end tell
end tell

Let's take a look at one more type of image manipulation. The following example code will flip an image horizontally, and save it into a separate folder.

set theImage to choose file of type "JPEG"
set theOutputFolder to choose folder
tell application "Image Events"
   launch
   set theImageReference to open theImage
   tell theImageReference
      flip with horizontal
      save in (theOutputFolder as string) & "Flipped Image.jpg"
      close
   end tell
end tell

Performing Image Conversions

When working with images, it frequently becomes necessary to convert images from one format to another. Sure, you could open a JPEG image in Preview, and manually export it to TIFF format. But, what if you needed to do this to 100 images, or 1000? This type of process can actually be done with AppleScript and Image Events.

Earlier, we discussed using the save command to save images once they have been manipulated. Well, the save command also some optional parameters, one of which allows you to specify a file type in which to save the image. The following example code demonstrates how to convert a file from JPEG to TIFF format.

set theImage to choose file of type "JPEG"
set theOutputFolder to choose folder
tell application "Image Events"
   launch
   set theImageReference to open theImage
   tell theImageReference
      save in (theOutputFolder as string) & "Converted Image.tiff" as TIFF
      close
   end tell
end tell

Image Events supports saving images in the following formats - BMP, JPEG, JPEG2, PICT, PNG, PSD, QuickTime Image. And TIFF. While Image Events can open GIF, MacPaint, PDF, SGI, and TGA images, it cannot save in these formats.

Pulling it Together

Now, let's pull together a few of the tasks we have discussed. The following example code uses a repeat loop to process a folder of JPEG images. Using Image Events, each image is opened, resized, and saved in TIFF format to an output folder.

set theImageFolder to choose folder with prompt "Select a folder of JPEG images:"
set theOutputFolder to choose folder with prompt "Select an output folder:"

tell application "Finder"
   set theImages to every file of theImageFolder whose file type = "JPEG"
end tell

tell application "Image Events"
   launch
   repeat with a from 1 to length of theImages
      set theImage to file ((item a of theImages) as string)
      set theImageReference to open theImage
      tell theImageReference
         set theImageName to name
         save in ((theOutputFolder as string) & theImageName & ".tiff") as TIFF
      end tell
   end repeat
end tell

Other Image Manipulation Tools

As you may already know, there are some other image manipulation tools available. Both Graphic Converter <http://www.lemkesoft.com/> and Adobe Photoshop <http://www.adobe.com/products/photoshop/> offer extensive AppleScript support. By using AppleScript to automate applications such as these, you can create simple to complex automated workflows in order to perform virtually any type of image manipulation or conversion process imaginable.

In Closing

Throughout this article, we have discussed some basic ways to go about manipulating images in Mac OS X using Image Events. While we looked at a few examples, as I mentioned earlier, there are many other image manipulation commands and image properties that are available within the Image Events dictionary, that we did not have a chance to cover. The examples in this article only scratch the surface, and are meant to show you some basic ideas of what is possible. I would encourage you to begin exploring the Image Events dictionary in greater detail, so that you can begin using this application to its full potential, making your own workflow more efficient.

For some additional information about Image Events, please visit Apple's AppleScript web site http://www.apple.com/applescript/imageevents/

Until next time, keep scripting!


Benjamin Waldie is president of Automated Workflows, LLC, a firm specializing in AppleScript and workflow automation consulting. In addition to his role as a consultant, Benjamin is an evangelist of AppleScript, and can frequently be seen presenting at Macintosh User Groups, Seybold Seminars, and MacWorld. For additional information about Benjamin, please visit http://www.automatedworkflows.com, or email Benjamin at applescriptguru@mac.com.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Opera 51.0.2830.34 - High-performance We...
Opera is a fast and secure browser trusted by millions of users. With the intuitive interface, Speed Dial and visual bookmarks for organizing favorite sites, news feature with fresh, relevant content... Read more
ffWorks 1.0.6 - Convert multimedia files...
ffWorks (was iFFmpeg), focused on simplicity, brings a fresh approach to the use of FFmpeg, allowing you to create ultra-high-quality movies without the need to write a single line of code on the... Read more
Adobe Photoshop CC 2018 19.1.1 - Profess...
Photoshop CC 2018 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous Photoshop customer). Adobe Photoshop CC 2018, the industry standard... Read more
Google Chrome 64.0.3282.167 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
Adobe Acrobat Reader 18.011.20035 - View...
Adobe Acrobat Reader allows users to view PDF documents. You may not know what a PDF file is, but you've probably come across one at some point. PDF files are used by companies and even the IRS to... Read more
Adobe Acrobat 18.011.20035 - Powerful PD...
Acrobat DC is available only as a part of Adobe Creative Cloud, and can only be installed and/or updated through Adobe's Creative Cloud app. Adobe Acrobat DC with Adobe Document Cloud services is... Read more
Yummy FTP Pro 2.0 - $29.99
Yummy FTP Pro is an advanced Mac file transfer app which provides a full-featured professional toolkit combined with blazing speeds and impeccable reliability, so whether you want to transfer a few... Read more
WebSnapperPro 2.0.5 - $20.00
WebSnapperPro lets you capture full web pages exactly as they appear in your browser, with a single mouse click, without the need to "stitch" or cut-and-paste. Save the page as an image file or as... Read more
Cocktail 11.3.1 - General maintenance an...
Cocktail is a general purpose utility for macOS that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Fantastical 2.4.6 - Create calendar even...
Fantastical 2 is the Mac calendar you'll actually enjoy using. Creating an event with Fantastical is quick, easy, and fun: Open Fantastical with a single click or keystroke Type in your event... Read more

Latest Forum Discussions

See All

Our top 5 characters from casual RPG Cre...
Creature Quest definitely lives up to its name with a host of collectible creatures based on fantasy tales and world mythologies. To celebrate Creature Quest’s first birthday, we’re going to lay out what we think are the five best characters in the... | Read more »
Around the Empire: What have you missed...
Did you know that Steel Media has a whole swathe of other sites dedicated to all aspects of mobile gaming? Sure you'll get the very best iPhone news, reviews, and opinions right here at 148Apps, but we don't want you missing out on a single piece... | Read more »
All the best games on sale for iPhone an...
Oh hi there, and welcome to our round-up of the best games that are currently on sale for iPhone and iPad. You thought I didn't see you there, did you, skulking behind the bushes? Trust me though, the bushes aren't where the best deals are. The... | Read more »
The Battle of Polytopia Guide - How to H...
A new update just released for The Battle of Polytopia (formerly Super Tribes), which introduces online multiplayer. For all the fans of Midjiwan’s lite take on Civilization, this is certainly welcome news, but playing online isn’t as easy and... | Read more »
Here are the very best mobile games to p...
It's Valentine's Day! Did you get loads of cards and chocolates and other tacky, simple expressions of human affection? Did you send out tat because you find it almost impossible to express emotion unless there's a section dedicated to it at your... | Read more »
Florence (Games)
Florence 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Florence is an interactive storybook from the award-winning lead designer of Monument Valley about the heart-racing highs and... | Read more »
Purrfect Date (Games)
Purrfect Date 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Cats are a lil’ like marmite. Either you absolutely head-over-heels love’ em, or… nahhh, who are we kidding?! Everyone... | Read more »
More monsters to collect and evolve in C...
A laid-back mix of RPG and TCG, Creature Quest is all about building your deck, evolving your creatures and winning in battle. It’s the creation of VC Mobile, set up by Might and Magic producer Jon Van Caneghem. There are elements of that classic... | Read more »
Check out this awesome hands-on with the...
Well, PlayerUnknown's Battlegrounds has come out on mobile. This isn't a clone, this isn't a riff on the battleroyale mechanics of the game, it's the official mobile port by Tencent. But there's a little bit of a hitch. [Read more] | Read more »
Hostage Negotiator (Entertainment)
Hostage Negotiator 1.1.0 Device: iOS Universal Category: Entertainment Price: $3.99, Version: 1.1.0 (iTunes) Description: Official app of the board game by AJ Porfirio and Van Ryder Games. In Hostage Negotiator, you play the part of... | Read more »

Price Scanner via MacPrices.net

B&H offers $200 discount on Silver 15″ Ma...
B&H Photo has Silver 15″ Apple MacBook Pros on sale for $200 off MSRP. Shipping is free, and B&H charges sales tax for NY & NJ residents only: – 15″ 2.8GHz Touch Bar MacBook Pro Silver (... Read more
12″ Apple iPad Pro Sale of the Year! Models u...
B&H Photo has 12″ #iPad Pros on sale for up to $150 off MSRP. Shipping is free, and B&H charges sales tax in NY & NJ only: – 12″ 64GB WiFi iPad Pro: $719 $80 off MSRP – 12″ 256GB WiFi... Read more
Deals on 32GB 9″ iPads: Up to $50 off MSRP, s...
B&H Photo has 2017 9.7″ 32GB iPads on sale for $299 including free shipping plus NY & NJ sales tax only. Their price is $30 off MSRP, and it’s currently the lowest price available for these... Read more
15″ 2.2GHz Retina MacBook Pro available for o...
Apple has Certified Refurbished 15″ 2.2GHz Retina MacBook Pros available for $1699. That’s $300 off MSRP for this model, and it’s the lowest price available for a 15″ MacBook Pro currently offered by... Read more
13″ 3.1GHz/256GB Silver Touch Bar MacBook Pro...
Amazon has the Silver 13″ 3.1GHz/256GB Touch Bar MacBook Pro (MPXX2LL/A) on sale for $1649.99 including free shipping. Their price is $150 off MSRP, and it’s the lowest price available for a new 13″... Read more
Saturday Sale: Amazon offers 13″ 1.8GHz/256GB...
Amazon has the 13″ 1.8GHz/256B Apple MacBook Air on sale today for $250 off MSRP including free shipping: – 13″ 1.8GHz/256GB MacBook Air (MQD42LL/A): $949.99, $250 off MSRP Their price is the lowest... Read more
Roundup of Apple Certified Refurbished 12″ Ma...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more
Apple offers Certified Refurbished 10″ and 12...
Apple is now offering Certified Refurbished 2017 10″ and 12″ iPad Pros for $100-$190 off MSRP, depending on the model. An Apple one-year warranty is included with each model, and shipping is free: –... Read more
Apple Canada offers Certified Refurbished Mac...
 Canadian shoppers can save up to $560 on the purchase of a 2017 current-generation MacBook Pro, MacBook, or MacBook Air with Certified Refurbished models at Apple Canada. Apple’s refurbished prices... Read more
Sale! 13″ MacBook Airs for up to $180 off MSR...
B&H Photo has 13″ MacBook Airs on sale for $50-$120 off MSRP. Shipping is free, and B&H charges sales tax for NY & NJ residents only: – 13″ 1.8GHz/128GB MacBook Air (MQD32LL/A): $899, $... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 113501424 Norman, Oklahoma, United States Posted: 15-Feb-2018 Weekly Hours: 40.00 **Job Summary** Are you passionate about Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.