Пытается написать простой сценарий для преобразования файла изображения в разные размеры, и AppleScript продолжает возвращать мне «недостающее значение» при сохранении файлов. Кто-нибудь знает, что происходит в следующем коде?AppleScript сохранить изображение ошибка ошибка?
set f to choose file
set image_file to f as alias
convertFile(image_file, "[email protected]", 1024)
convertFile(image_file, "_512.", 512)
-- iPad (iOS 7+)
convertFile(image_file, "[email protected]", 152)
convertFile(image_file, "_76.", 76)
-- iPad (iOS 6)
convertFile(image_file, "[email protected]", 144)
convertFile(image_file, "_72.", 72)
-- iPhone (iOS 7+)
convertFile(image_file, "[email protected]", 180)
convertFile(image_file, "[email protected]", 120)
convertFile(image_file, "_60.", 60)
-- iPhone (iOS 6)
convertFile(image_file, "[email protected]", 114)
convertFile(image_file, "_57.", 57)
-- iPhone (iOS 7 Spotlight)
convertFile(image_file, "[email protected]", 80)
convertFile(image_file, "_40.", 40)
-- iPhone (iOS 5,6 Spotlight, iOS 5-7 Settings)
convertFile(image_file, "[email protected]", 58)
convertFile(image_file, "_29.", 29)
on convertFile(source_file, file_spec, image_size)
set my_path to POSIX path of source_file
set AppleScript's text item delimiters to "/"
set path_parts to text items of my_path
if last item of path_parts is not "" then
set file_name to last item of path_parts
set file_path to items 1 thru -2 of path_parts as string
end if
set AppleScript's text item delimiters to "."
set filename_parts to text items of file_name
set prefix to items 1 thru -2 of filename_parts as string
set suffix to last item of filename_parts
set target_posix_path to file_path & "/" & prefix & file_spec & suffix
set target_posix_file to target_posix_path as POSIX file
tell application "Image Events"
set this_image to open source_file
scale this_image to size image_size
save this_image in target_posix_path
close this_image saving no
end tell
end convertFile
Event & Ответы Выход на моем MacBook Air (Mac OS X 10.9.5):
tell application "AppleScript Editor"
choose file
--> alias "Macintosh HD:Users:william:Desktop:goro_icon:icon.png"
end tell
tell application "Image Events"
open alias "Macintosh HD:Users:william:Desktop:goro_icon:icon.png"
--> image "icon.png"
scale image "icon.png" to size 1024
save image "icon.png" as PNG in "/Users/william/Desktop/goro_icon/[email protected]"
--> file "Macintosh HD:Users:william:Desktop:goro_icon:[email protected]"
close image "icon.png" saving no
open alias "Macintosh HD:Users:william:Desktop:goro_icon:icon.png"
--> image "icon.png"
scale image "icon.png" to size 512
save image "icon.png" as PNG in "/Users/william/Desktop/goro_icon/icon_512.png"
--> missing value
close image "icon.png" saving no
open alias "Macintosh HD:Users:william:Desktop:goro_icon:icon.png"
--> image "icon.png"
scale image "icon.png" to size 152
save image "icon.png" as PNG in "/Users/william/Desktop/goro_icon/[email protected]"
--> missing value
close image "icon.png" saving no
(omitted the long list of same errors..)
end tell
FWIW Я просто запустил ваш код здесь, на тестовом изображении (файл .png на моем рабочем столе), и он работал нормально - мне интересно, не является ли это чем-то конкретным для вашего имени файла, пути к вашему файлу, файла/разрешений каталога или, возможно, суффикса или типа файла для вашего входного файла? –
Выход мой результат выглядит следующим образом: \t РАССКАЖИ "AppleScript Editor" \t \t выбрать файл \t \t \t -> псевдоним "Macintosh HD: Пользователи: уилльям: Desktop: goro_icon: icon.png" \t конец сказать \t сКАЖИТЕ приложения "События изображения" \t \t открыт псевдоним "Macintosh HD: пользователей: Оертель: Desktop: goro_icon: icon.png" \t \t \t -> изображение "icon.png" \t \t масштаб изображения "icon.png" в размере 512 \t \t сохранить изображение "icon.png" в формате PNG в "/Users/william/Desktop/goro_icon/icon_512.png" \t \t \t -> отсутствующее значение \t \t close image "icon.png" save no ... \t end tell –
Я думаю, что единственное, что я могу вам сказать, это то, что я запускаю OS X 10.10.1 (Yosemite) и, возможно, также предлагаю попробовать другой входной файл. –