如何使用AppleScript获取图像(jpeg,原始)捕获日期时间?



到目前为止,我只能获得比捕获日期晚几秒钟的图像文件创建日期。如何从Exif获取图像的捕获日期?

tell application "Finder"
try
set the source_folder to (folder of the front window) as text
on error -- no open folder windows
set the source_folder to (path to desktop folder) as text
end try
set these_items to the selection
end tell
set repeatCount to 1
repeat with i from 1 to the count of these_items
set this_item to (item i of these_items) as alias
set this_info to info for this_item
set {file_name, file_ext} to splitExtension from the name of this_info
set capture_date to (the creation date of this_info)
set formatted_date to (my dateFormat(capture_date))
set new_name to formatted_date & file_ext
-- check to see if it's already there
tell application "Finder"
if (exists item (source_folder & new_name)) then
--- display dialog new_name & " already exists."
set new_name to formatted_date & "_" & repeatCount & file_ext
set name of this_item to new_name
set repeatCount to 1 + repeatCount
else
set name of this_item to new_name
end if
end tell
end repeat

您可以在AppleScriptObjC和AppKit的帮助下获取EXIF数据。

结果是包含数据的Applescript记录,捕获日期可能是键DateTimeDigitized的值,它是一个字符串。

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
use framework "AppKit"
set theFile to (choose file)
set imageRep to current application's NSBitmapImageRep's imageRepWithContentsOfFile:(POSIX path of theFile)
set exifData to imageRep's valueForProperty:(current application's NSImageEXIFData)
if exifData is missing value then
display dialog "No EXIF data found" buttons "Cancel" default button 1
else
set exifData to exifData as record
set captureDate to DateTimeDigitized of exifData
end if

最新更新