- PVSM.RU - https://www.pvsm.ru -
Всем привет.
Сразу уточню заголовок: под нарезкой подразумевалось создание уменьшенных копий png и jpg файлов. То есть, то, что иногда требуется разработчикам/верстальщикам/дизайнерам. В моем конкретном случае — уменьшение картинкок для Retina дисплеев в два раза под обычные экраны.
То есть фотошопом или каким-нибудь другим редактором изображений при непосредственном участии пользователя. Последовательность действий такова: открываешь картинку в редакторе, уменьшаешь до 50 % (вставить нужное число), сохраняешь с требуемым именем. Если уменьшение изображения повесить макросом на хоткей, то время тратится только на переименование файла и первоначальную загрузку редактора. В итоге — секунд 30 на файл, недолго, но если файлов много, то потеря времени ощутима.
Могу поспорить, что многие, очень многие, так и делают или делали в течение какого-то периода своей карьеры. Я сам, зная о том, что все это можно легко автоматизировать, все равно рубил дрова тупым топором, успокаиваясь мыслью, что просто нет времени его наточить. И наконец это время пришло.
Существуют вполне себе многофункциональные платные программы, а также инструмент в Photoshop начиная с v. 14.1 [2] (спасибо designiac [3] за ссылку). Они проворачивают свою магию прямо с psd файлом, избавляя от некоторых рутинных операций. Все это, конечно, круто, но во-первых, за деньги (все же пользуются лицензионным софтом!), а во-вторых, они все равно не сделают все за вас. Конечно, хотелось бы услышать мнение тех, кто пользовался подобными инструментами, может я не прав, и они действительно творят волшебство.
Итак, у нас имеется набор изображений в форматах png и jpg в самом большом разрешении из требуемых, которые уже мы или кто-то другой нарезал. Нужно создать копии этих изображений, пропорционально уменьшенные в определенное количество раз, а также переименовать их, как нам надо. И конечно же на арену выходит Automator [4]! Штука с большими возможностями и простая в использовании. Нужный нам функционал делается за несколько кликов мышкой, причем с помощью этого руководства [5], например, со всем справится даже моя мама. И дело даже не в том, что моя мама — достаточно продвинутый пользователь, а том, что это действительно очень просто.
Поэтому описывать процесс создания здесь не буду, если кому-то вдруг интересен результат — пожалуйста [6] (размер столь маленькой программы такой большой в первую очередь из-за иконки с роботом Отто объемом в 1.3 Mb). Приложение попросит выбрать исходные файлы, потом — папку, куда поместить уменьшенные копии, и уменьшит выбранные файлы на 50 %, убрав в их названиях постфикс для ретины '@2x'. Если под горячую руку попадутся файлы других типов, то они тоже будут скопированы и по возможности переименованы. Минус данного подхода в том, что для каждого конкретного сценария (другой процент уменьшения, другой способ именования) придётся делать отдельное приложение. Вполне возможно, что если покорпеть над мануалами, все можно реализовать и рамках одного приложения, но зачем делать сложные вещи инструментом, предназначенным для простых?
С помощью Automator можно сделать как полноценное приложение, так и т. н. сервис — последовательность неких действий, интегрируемую в операционную систему, которую можно вызвать прямо из конекстного меню файла. Отлично подойдет как дополнение, если надо применить действие не к целому списку файлов, а точечно. К тому же вызов сервиса можно повесить на хоткей, правда почему-то это не работает [7]. Конечный результат, если лень делать самому, — по ссылке [8]. Нужно распаковать архив и скопировать находящийся внутри него файл с расширением workflow в папку Library/Services вашего пользователя.
Обработку изображений программы из Automator делают скорее всего с помощью встроенного в OS X инструмента sips [9], конечный результат, если сравнивать попиксельно, иногда отличается от результата аналогичного уменьшения картинки в Photoshop, но отличия минимальны, и изображения в любом случае выглядят хорошо.
Конечно же, каждый сознательный гражданин, который знает толк в извращениях, в первую очередь подумает именно об этом. Написать самому! Преимуществ тут куча: удобный графический интерфейс, тонкая настройка всего, что тебе нужно, уверенность, что приложение не подведет тебя… но все это при условии, что ты вложишь какое-то количество труда. Я переборол себя и решил вложить. Получилось, на мой взгляд, неплохо. Как-то так:
Помимо выбора исходной папки и конечной папки можно задать процент уменьшения и строку с определенным синтаксисом (маску), по которой будет происходить переименование. Например, маска -@2x означает, что из имени будет убран текст @2x, а *+_copy означает, что к концу имени файла (перед расширением) будет добавлено _copy.
Обработку изображений внутри приложения я реализовал с помощью все того же sips, так что результат на выходе аналогичный программам, сгенерированным с помощью Automator.
При желании можно это безобразие применить и просто для группового переименования, выбрав одну и ту же папку как приемник и как источник, а процент уменьшения выставив на 100.
Ссылка на скомпилированное приложение вот [10] (тестировалось на OS X 10.8.5), по некоторым неочевидным причинам на гитхаб исходники не заливаю, если кому будет интересно — пишите, скину их вам архивом.
Спасибо за внимание, да пребудет с нами автоматизация!
P.S. Прошу обратить внимание, что пост не подразумевает, что указанные четыре способа единственные.
Автор: tralf
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/avtomatizatsiya/55045
Ссылки в тексте:
[1] эта ветка комментариев.: http://habrahabr.ru/post/212225/#comment_7300105
[2] Photoshop начиная с v. 14.1: http://blogs.adobe.com/photoshopdotcom/2013/09/introducing-adobe-generator-for-photoshop-cc.html
[3] designiac: http://habrahabr.ru/users/designiac/
[4] Automator: http://ru.wikipedia.org/wiki/Automator
[5] этого руководства: http://macradar.ru/switchers/automator-guide/
[6] пожалуйста: https://docs.google.com/uc?authuser=0&id=0B4FstaZcii5dc0tXSWFMY0pFMUk&export=download
[7] почему-то это не работает: http://superuser.com/questions/553107/keyboard-shortcut-for-service-inos-x-doesnt-work
[8] по ссылке: https://docs.google.com/uc?authuser=0&id=0B4FstaZcii5dNU5hWGl0RDNCNkk&export=download
[9] sips: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/sips.1.html
[10] вот: https://docs.google.com/uc?authuser=0&id=0B4FstaZcii5daU43NFNzY3NkYlU&export=download
[11] Источник: http://habrahabr.ru/post/212571/
Нажмите здесь для печати.