如何使用 AppleScript 获取图像的(jpeg、raw)捕获日期时间?
How to get image's (jpeg, raw) capture date time with AppleScript?
到目前为止,我只能得到比拍摄日期晚几秒的图像文件创建日期。如何从 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
到目前为止,我只能得到比拍摄日期晚几秒的图像文件创建日期。如何从 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