59. Preview Fingerprint
Aperture writes its internal ID to the IPTC
Special Instructions in previews.
mRG3bpEnT0GOSJ9qNuxk+g
You can access versions by ID through
AppleScript
60. The Ecosystem
iPhoto Aperture Your App!
Image Kit Quicktime Core Image
Image IO
Image Capture
76. Do not assume the
existence of any key in
this dictionary.
77. After all, cameras come
from hardware
manufacturers and they
never support anything
entirely correctly.
78. CGImageSourceCreateImageAtIndex()
• Creates a CGImageRef from an image in
the file.
• Most image files have one image, but there
is support for multiple representations.
• CGImageSourceGetCount() tells you how
many there are.
120. Two Gotchas
• Constants for
IKImageBrowserGroupStyleKey are defined
in an enum, so pack them in NSNumber.
121. Two Gotchas
• Constants for
IKImageBrowserGroupStyleKey are defined
in an enum, so pack them in NSNumber.
• IKImageBrowserGroupRangeKey’s value
should be an NSRange packed into an
NSValue.
149. Export Plugins
• Primary method of getting data from
Aperture and iPhoto.
• ObjC API-level access to Aperture
150. Export Plugins
• Primary method of getting data from
Aperture and iPhoto.
• ObjC API-level access to Aperture
• Focus on Aperture, mostly also valid for
iPhoto
151. Export Plugins
• Primary method of getting data from
Aperture and iPhoto.
• ObjC API-level access to Aperture
• Focus on Aperture, mostly also valid for
iPhoto
• SDKs for both apps from
connect.apple.com
156. Process: Post-Export
• Upload the images to the web
• FlickrExport does all its upload
work in
exportManagerDidFinishExport
Post-Export
157. Process: Post-Export
• Upload the images to the web
• FlickrExport does all its upload
work in
exportManagerDidFinishExport
Post-Export
• AppleScript another application to
ingest them
158. Process: Post-Export
• Upload the images to the web
• FlickrExport does all its upload
work in
exportManagerDidFinishExport
Post-Export
• AppleScript another application to
ingest them
• Burn a disc
159. Process: Post-Export
• Upload the images to the web
• FlickrExport does all its upload
work in
exportManagerDidFinishExport
Post-Export
• AppleScript another application to
ingest them
• Burn a disc
• Add metadata back to Aperture
163. addKeywords:
toImageAtIndex:
• Be careful: all keywords become top-level
keywords in Aperture’s hierarchy,
164. addKeywords:
toImageAtIndex:
• Be careful: all keywords become top-level
keywords in Aperture’s hierarchy,
• Mess
165. addKeywords:
toImageAtIndex:
• Be careful: all keywords become top-level
keywords in Aperture’s hierarchy,
• Mess
• Remember: photographers == picky
curmudgeons obsessed with organisation
170. addCustomMetadataKeyValues:
toImageAtIndex:
• Arbitrary dictionary of key/value pairs
• Must be NSStrings
• Appear in Aperture’s metadata inspector
• Can be used in Smart Album criteria
171. FlickrExport Example
• FlickrExport writes back:
• Flickr ID
• Flickr URL
• Knowing the Flickr ID of a version in
Aperture lets FlickrExport do replacement
on a re-export
175. iPhoto Limitations
• Can’t add metadata back to iPhoto
• Can’t create new keywords
• API has different method names, but
conceptually almost identical
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.
Note that IKImageBrowserGroupRangeKey takes the location of the first image in the group whilst the method parameter _index_ refers to the index of the group.