2017-02-02 2 views
0

У меня есть тысячи фотографий в свете, что я конвертирую в JPEG, чтобы сэкономить место. Дело в том, что эти RAW-файлы уже классифицируются по разным меткам меток finder, поэтому при экспорте в JPEG эти ярлыки будут удалены. Есть ли способ сохранить эти теги или просто создать рабочий процесс automator, который сканирует каталог и находит JPEG с точным именем файла как расширение .CR2/.NEF и применяет теги к новым файлам JPEG?Automator Workflow Finder Теги

Macos Sierra

Mac Pro (конец 2013)

3,7 ГГц Quad-Core Intel Xeon E5

Версия 10.12.3 (16D32)

ответ

0

переполнение стека не является местом, где вы просите кого-то разработать что-то для вас. Вы должны начать свою программу, а затем получить помощь здесь. Итак, вот некоторая помощь:

1) нет стандартного действия Automator для получения или установки меток. Но Applescript содержит функцию о методах.

2) Однако имейте в виду, что возможности Applescript сегодня ограничены одним ярлыком на каждый файл, даже если вы можете установить несколько в Finder. Поэтому, если вы установили несколько ярлыков цветов в CR2 или NEF-файл, Applescript еще не может помочь вам

3) вам нужно создать цикл повтора через файлы JPEG и для каждого извлечь его без расширения. Это может быть сделано с помощью:

tell application "Finder" 
    set N to name of aFile 
    set Ext to name extension of aFile 
    set BaseName to text 1 thru ((length of N) - (length of Ext) - 1) of N 
end tell 

4) вы должны использовать это имя для добавления 2 возможных расширений (CR2, NEF) и искать, если файл существует в необработанном папке. Вы можете сделать это с помощью функции Finder «существует»

5) если CR2/NEF файл существует получить метку и установить его в файл в формате JPEG с помощью атрибута «индекс метки» файла:

set myLabel to label index of file CR2 -- to read CR2 file label 
set label index of aFile to myLabel -- to assign the label found to your new jpg file 

6) потому что ваши файлы Jpg находятся в одной папке/подпапке как сырой файл, вам просто нужно выбрать одну папку, содержащую все файлы. Для каждого jpg вы выполняете поиск на том же уровне папки, если существует необработанный файл. Папка, содержащая файл, вызывается «контейнером». для получения файлов со всех уровней подпапок используйте «все содержимое». Я просто добавляю фильтр только для получения файлов с расширением «JPG» или «jpg». Возможно, вам придется расширить список своих расширений.

Все вместе это дает:

-- possible values label index: 0= no label, 1=orange, 2=Red, 3=yellow, 4=blue, 5=pink, 6=green, 7=grey 
set myFolder to choose folder with prompt "Select folder containing JPEG and raw files" 

tell application "Finder" 
set JPEGFiles to every file in entire contents of folder myFolder whose name extension is in {"JPG", "jpg"} 
repeat with aFile in JPEGFiles -- loop through all jpeg files 
    -- extract name of Jpg file without extension 
    set N to name of aFile 
    set Ext to name extension of aFile 
    set parentFolder to (container of aFile) as string -- get folder 
    set BaseName to text 1 thru ((length of N) - (length of Ext) - 1) of N 
    -- build possible raw file names with extension .CR2 or .NEF 
    set CR2 to (parentFolder & BaseName & ".CR2") as string 
    set NEF to (parentFolder & BaseName & ".NEF") as string 

    -- search existing label and assign it to jpg file 
    set myLabel to 0 -- default no label 
    if CR2 exists then set myLabel to label index of file CR2 -- get label of .CR2 if exists 
    if NEF exists then set myLabel to label index of file NEF -- get label of .NEF if exists 
    if myLabel > 0 then set label index of aFile to myLabel -- if label found, assignment to jpg file 
end repeat -- loop to next file in jpg folder 
end tell 
+0

Спасибо! Не могли бы вы собрать все это для меня? Я не уверен, где два фрагмента кода объединяют сценарий –

+0

, добавленный в первый ответ. – pbell

+0

Отлично! Прекрасно работает. Теперь мне нужно включить все вспомогательные папки. Возможное? –

Смежные вопросы