Демотиваторы

При нажатии на ссылку «Далее» вы подтверждаете, что являетесь True-айтишником. Все мы знаем ныне популярный формат картинок в интернете — демотиваторы. Известен так же и бум, связанный с ними. Программы для создания демотиваторов были написаны на огромном множестве языков программирования. Но линуксоид во всем и всегда должен быть первым =) Внесу свою скромную лепту.
Создаем демотивационные постеры одной командой при помощи скрипта!

#!/bin/bash
#Demotivation by William Meth.
#V 0.3 Copyleft (C) BSD license
 
#############Изменяйте эти переменные под свои нужды###############
#
#Умолчания
ADR="/usr/bin" #папка с нужными утилитами
DEST="dem`date +%N`.png" #Имя файла
H_FONT="/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf" #Шрифт заголовка
T_FONT="/usr/share/fonts/TTF/dejavu/DejaVuSans.ttf" #Шрифт пояснения
H_SIZE="64" #Размер заголовка
T_SIZE="32" #размер пояснения
SCALE="640" #размер 
#Коды ошибок
ERROPT="1" #неверная опция
NOVALUE="2" #не прописано значение опции
NOIMAGE="3" #Не дан входной файл
SCALE_ERR="4" #не получилось изменить изображение
NODEPS="5" #нерешенные зависимости
SHIT="265" #
#==================================================================
 
#Проверка наличия необходимых компонентов
if [[ ! -e "$ADR/convert" ]]; then
  echo 'Для корректной работы программы требуется пакет "ImageMagic"' 1>&2
  exit $NODEPS
fi
 
 
motivator_help() {
cat << EOF
${0} - Генератор демотиваторов
Использование:
  ${0} -i КАРТИНКО [-o КАРТИНКО] [-h ТЕКСТ] [-t текст]
  [-f ШРИФТ] [-F ШРИФТ] [-s РАЗМЕР] [-S РАЗМЕР] [-C ЧИСЛО]
Опции:
  -H - Показать эту справку
  -i - Исходное изображение
  -h - Текст заголовка
  -t - Текст пояснения
  -o - Выходной файл
  -F - Шрифт заголовка
  -f - Шрифт пояснения
  -S - Размер заголовка
  -s - Размер пояснения
  -C - Размер изображения
EOF
} 
 
motivator_getopts() { 
while getopts ":i: h: t: o: f: F: s: S: C: H" optname; do #получаем аргументы
    case "$optname" in
        "i") IMAGE="${OPTARG}";;
        "h") HEAD_TEXT="${OPTARG}";;
        "t") TERM_TEXT="${OPTARG}";;
        "o") DEST="${OPTARG}";;
        "f") T_FONT="${OPTARG}";;
        "F") H_FONT="${OPTARG}";;
        "s") T_SIZE="${OPTARG}";;
        "S") H_SIZE="${OPTARG}";;
        "C") SCALE="${OPTARG}";;
        "H") motivator_help; exit 0;;
        "?") echo "нет такой опции \"${OPTARG}\"!11. Юзайте -H для справки"; exit $ERROPT;;
        ":") echo "Не указан аргумент для опции    \"${OPTARG}\""; exit $NOVALUE;;
        *)   echo "Неведомая <!--filter:ебан-->****<!--/filter-->ая <!--filter:хуй-->***<!--/filter-->ня o_O"; exit $SHIT;;
    esac
done
 
#Проверяем наличие входного файла
if [ -z "${IMAGE}" ]; then
  echo -e "дайте мне исходную картинку!
" 1>&2
  motivator_help
  exit $NOIMAGE 
fi
 
}
 
#/*Конец секции функций*/
#main ()
motivator_getopts "${@}" #получаем таки аргументы
 
#Изменяем размер
convert -scale "${SCALE}" "${IMAGE}" "${DEST}" &> /dev/null
if [ $? -gt 0 ]; then
  echo "Ошибка изменения размера изображения" 1>&2
  exit $SCALE_ERR
fi
 
#Делаем рамку
mogrify -bordercolor black -border 2 \
        -bordercolor white -border 2 \
        -bordercolor black -border 70x0 "${DEST}"
 
#Пишем заголовок
if [ -n "${HEAD_TEXT}" ]; then
montage -geometry +0+0 -background black -fill white \
        -font "${H_FONT}" \
        -pointsize "${H_SIZE}" -label "${HEAD_TEXT}" "${DEST}" "${DEST}"
fi
 
#Пишем пояснение
if [ -n "${TERM_TEXT}" ]; then
montage -geometry +0+0 -background black -fill white \
        -font "${T_FONT}" \
        -pointsize "${T_SIZE}" -label "${TERM_TEXT}" "${DEST}" "${DEST}"
fi
 
#Если был заголовок или пояснение, делаем поля
if [ -n "${HEAD_TEXT}" -o -n "${TERM_TEXT}" ]; then
  mogrify -bordercolor black -border 5x45 "${DEST}"
fi
 
exit 0 #все хорошо, закончили. Уходим отсюда!
  • +8
  • 29 июня 2009, 20:01
  • BopoH

Комментарии (11)

RSSсвернуть /развернуть
+
+3
прикольно. прикрутим. ab
avatar

BIT

  • 29 июня 2009, 20:01
+
+6
это называеться Вынос мозга, для всех остальных, кроме True-айтишником))))))
avatar

BigSmoke

  • 29 июня 2009, 20:31
+
0
Опа ag
avatar

Seefon

  • 29 июня 2009, 20:49
+
-5
раскрыть комментарий
avatar

Bop

  • 29 июня 2009, 21:05
+
-3
че это за фигня??? для кого??? bu
avatar

SJTEAM

  • 29 июня 2009, 22:06
+
0
Полезно! Побольше бы такого.
avatar

Chrome

  • 29 июня 2009, 22:21
+
+2
Многа букаФ!!!
ag
avatar

shoter

  • 30 июня 2009, 07:05
+
0
надо попробовать)
avatar

Fernanda

  • 30 июня 2009, 08:25
+
0
жесть)
avatar

b0mzh

  • 30 июня 2009, 13:16
+
+1
Вынос мозга ai
avatar

Dimon-_

  • 30 июня 2009, 15:49
+
0
Ухахаха bj
avatar

kalash1k

  • 01 июля 2009, 13:17

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Валидный HTMLВалидный CSSRambler's Top100