Disclaimer: эта статья имеет практический смысл только для мак-пользователей. Остальным разве что ради иллюстрации возможностей MacOSX.
Один из очень частых use case для многих людей, пользующихся компьютером создание и размещение скриншотов.
Как часто вам нужно показать кому-то часть вашего экрана, окно какого-приложения, «фотографию» ошибки или что-нибудь забавное? Правильный ответ чаще, чем вы это делаете. Потому что обычно все это достаточно сложно и неудобно. И вправду, ведь что нужно сделать для этого:
1. Собственно, сделать скриншот.
2. Сохранить его в файл.
3. Разместить где-то в интернете.
4. Получить http-ссылку на него.
5. Передать ее кому нужно.
Выполнение каждого из пунктов (кроме пятого разве что) зачастую является не таким простым, как хотелось бы.
Я хочу рассказать о способе быстрого создания скриншотов, который пригодится, как мне кажется, многим.
Automator
MacOSX, начиная с версии 10.4, включает в себя достаточно интересное и мощное приложение Automator. Если попытаться описать его функциональность в одном предложении, то это инструмент для создания не слишком сложных скриптов из предустановленного (но расширяемого) набора «кирпичиков» отдельных атомарных действий.
Каждое действие представляет собой какую-то операцию, имеющую (впрочем, не обязательно) некие входные и выходные данные. Учитывая тип этих данных, действия можно организовать в линейный поток, в котором каждое следующее действие получает данные на вход от выхода предыдущего. Таким образом, формируется последовательность операций, приводящая к требуемому результату.
Впрочем, гораздо проще будет показать пример.
Вот так выглядит окно Automatorа:
На панели Library перечислены все приложения, которые предоставляют Automatorу наборы действий. На панели Action соответственно, расположены действия.
Из действий мы можем составить программу (Workflow). К примеру, такую:
Эта «программа» копирует на iPod всю непрочитанную почту в виде текстовых заметок (стандартная функциональность iPod). Вряд ли кому-то это действительно нужно, но для примера сойдет. Итак:
1. Запрашиваем подтверждение у пользователя готов ли он к действию (подключил ли iPod)?
2. Скачиваем новую почту для всех аккаунтов.
3. Запрашиваем из почтовой программы все письма, которые еще не были прочитаны.
4. Объединяем письма в один большой текстовый кусок.
5. Создаем текстовую заметку в iPod.
Очень просто, очень наглядно и очень быстро.
Но вернемся к нашей задаче.
Реализация
Итак, мы хотим создать нечто, что позволит быстро (одним кликом) делать скриншот любой части экрана, загружать его на FTP-сервер и класть в буфер обмена ссылку на HTTP-адрес этого изображения.
Собственно, скрипт:
По шагам:
1. Используем стандартное действие «Take screenshot». С указанными настройками оно предложит пользователю мышкой выделить любую область экрана и сохранит изображение выделенного в файл screen.
2. Это действие переименовывает этот файл в уникальное название. Нужно для того, чтобы следующий скриншот не перезаписывал предыдущий.
3. Собственно, загрузка на FTP. Это действие не является стандартным, и его нужно устанавливать в систему отдельно. Внизу статьи будут даны все ссылки.
4. Действие «Upload to FTP» передает в выходных данных HTTP-ссылку на загруженный файл. Четвертым действием мы кладем ее в буфер обмена.
Все!
Сухой остаток
Вот собственно архив готового workflow, делающего то, что описано в этой статье: screenshot.zip.
Вот необходимый для его работы action «Upload to FTP».
Инструкции:
1. Скачиваете и устанавливаете «Upload to FTP».
2. Открываете screenshot.wflow в Automator. Заменяете параметры первого и третьего действий. В первом действии выбираете подходящее для вас место сохранения скриншота, в третьем вводите все нужные параметры вашего FTP-сервера.
3. Выбираете пункт меню File Save As , далее вместо типа «Workflow» выбираете «Application».
Теперь вы имеете обычное приложение MacOSX, которое можете поместить в Dock и запускать каждый раз, когда вам нужно будет сделать скриншот.
Ура!