Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание

Здесь есть возможность читать онлайн «Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Питер, Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ. А решения даются так, что их легко можно взять за основу и экстраполировать на другие схожие задачи.
Цель этой книги — продемонстрировать практические приемы программирования сценариев на bash и познакомить с самыми распространенными утилитами на коротких и компактных примерах, не вдаваясь в излишние подробности. Экспериментируйте с этими сценариями — ломайте, исправляйте и приспосабливайте их под свои нужды, чтобы понять, как они работают. Только так вы сможете решать самые сложные задачи.

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Но не все потеряно. У вас есть два способа защитить свои изображения в сети. Первый — публиковать только изображения маленьких размеров. Загляните на сайты профессиональных фотографов и вы увидите, что мы имеем в виду. Обычно на них публикуются только миниатюры, потому что фотографы хотят зарабатывать на больших изображениях.

Второй способ — использование водяных знаков, хотя некоторые художники и отказываются добавлять любую идентификационную информацию непосредственно на фотографии. Тем не менее с помощью ImageMagick легко можно добавить водяные знаки, как показано в листинге 14.3, даже в большое количество файлов сразу.

Код

Листинг 14.3.Сценарий watermark

··#!/bin/bash

··# watermark — добавляет указанный текст в виде водяных знаков в заданное

··#·· изображение, сохраняя результат в файле с именем image+wm.

··wmfile="/tmp/watermark.$$.png"

··fontsize="44"························# Должен быть начальным аргументом.

··trap "$(which rm) −f $wmfile" 0 1 15 # Не оставлять временный файл.

··if [$# −ne 2]; then

····echo "Usage: $(basename $0) imagefile \"watermark text\"" >&2

····exit 1

··fi

··if [! -r "$1"]; then

····echo "$(basename $0): Can't read input image $1" >&2

····exit 1

··fi

··# Для начала получить размеры изображения.

картинка 550··dimensions="$(identify −format "%G" "$1")"

··# Создать временный слой для водяного знака.

картинка 551··convert −size $dimensions xc: n −p— pointsize $fontsize −gravity south \

····-draw "fill black text 1,1 '$2' text 0,0 '$2' fill white text 2,2 '$2'" \

····$wmfile

··# Теперь объединить временный слой и исходный файл.

картинка 552··suffix="$(echo $1 | rev | cut −d. -f1 | rev)"

··prefix="$(echo $1 | rev | cut −d. -f2- | rev)"

··newfilename="$prefix+wm.$suffix"

картинка 553··composite −dissolve 75 % −gravity south $wmfile "$1" "$newfilename"

··echo "Created new watermarked image file $newfilename."

··exit 0

Как это работает

Вся запутанность кода здесь объясняется использованием ImageMagick. Да, этот пакет многое умеет, но даже полная документация, где описаны все тонкости, не упрощает работу с ним. Но трудности не должны вас пугать, потому что потрясающие возможности различных инструментов ImageMagick стоят того.

Первый шаг — получить размеры изображения картинка 554, чтобы создать точно таких же размеров слой с водяными знаками. В противном случае изображение будет испорчено!

Спецификатор "%G" возвращает ширину и высоту, которые затем передаются программе convert для создания нового холста. Строку с вызовом convert картинка 555мы скопировали из документации ImageMagick, потому что она действительно слишком хитрая, чтобы ее можно написать с нуля. (Чтобы узнать больше о языке параметров команды conv −d— draw, попробуйте воспользоваться поисковой системой. Или можете просто скопировать наш код!)

Имя нового файла должно состоять из имени исходного файла с дополнением "+wm", и именно это делают три строки в картинка 556. Команда rev переворачивает входную строку задом наперед, а следующая команда cut −d. -f1 просто возвращает расширение файла, поскольку мы не знаем, сколько точек присутствует в имени файла. Затем расширение снова переворачивается и добавляется после "+wm.".

В заключение вызывается утилита composite картинка 557, объединяющая элементы и создающая изображение с водяными знаками. Вы можете поэкспериментировать с разными значениями −dissolve, чтобы отрегулировать прозрачность дополнительного слоя.

Запуск сценария

Сценарий принимает два аргумента: имя файла с изображением и текст, который должен быть нанесен на него. Если текст содержит несколько слов, не забудьте заключить его в кавычки, как показано в листинге 14.4, чтобы сценарий правильно воспринял фразу целиком.

Листинг 14.4.Запуск сценария watermark

$ watermark test.png "(C) 2016 by Dave Taylor"

Created new watermarked image file test+wm.png.

Результаты

Результат показан на рис. 14.1.

Рис 141Изображение с нанесенными водяными знаками Если вы столкнетесь с - фото 558

Рис. 14.1.Изображение с нанесенными водяными знаками

Если вы столкнетесь с ошибкой unable to read font (невозможно прочитать шрифт), скорее всего, в вашей системе отсутствует пакет Ghostscript (в OS X он устанавливается по умолчанию). Чтобы устранить проблему, установите Ghostscript с помощью своего диспетчера пакетов. Например, в OS X это можно сделать следующей командой:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Представляем Вашему вниманию похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Обсуждение, отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x