Online video hd

Смотреть русское видео

Официальный сайт circ-a 24/7/365

Смотреть welinux.ru

  • Вопросы и ответы
  • Talks!
  • Лента
  • Регистрация Войти
    digiwhite 06.02.2010 18:11

    Tips & tricksУстановка URL в качестве водяной марки на изображение

    В рамках недели скриптов :), которую объявил exelens и в рамках его предложения о водяных марках и не смотря на то что commonD уже написал коротеньки вариант с помощью того же самого пакета, решил все же сделать скрипт, делающий то, что написано в заголовке поста :).

    И так, использовать будем замечательный консольный инструмент для работы с изображениями под названием imagemagick. Чтобы установить его в debian подобных дистрибутивах, подозреваю, что нужно выполнить команду:
    1
    apt-get install imagemagick

    с правами от root`а.

    Далее под спойлером идет код скрипта:

      1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    #!/bin/bash

    ###############################################################################
    #
    # Скрипт использует пакет imagemagick для создания водяной марки и вставки ее
    # в изображения.
    #
    # Автор: digiwhite
    # Дата создания: 02-06-2010
    #
    ###############################################################################


    ###############################################################################
    #
    # Переменные скрипта.
    #

    # Обходить директории рекурсивно
    RECURSIVE=0

    # Количество указанных обязательных параметров
    REQ_PARAMS=0

    # URL для водяной марки
    URL=

    # Папка для поиска изображений
    FOLDER=

    # Директория, куда будут складываться все измененные изображения
    OUTPUT_FOLDER=

    # Директория для измененных изображений по умолчанию.
    DEFAULT_OUTPUT_FOLDER=~/watermarks


    ###############################################################################
    #
    # Дополнительные настройки скрипта
    #

    # Шаблоны для поиска изображений с заданными расширениями
    EXT="(*\.png$)|(*\.jpg$)"

    # Место, где лежит сгенерированная водяная марка
    WATERMARK_NAME="/tmp/watermark.gif"

    # Место, где лежат шрифты, используемые для генерации водяной марки
    FONT_FOLDER=/usr/share/fonts/truetype/freefont/

    # Название шрифта
    FONT_NAME=FreeSans.ttf

    # Размер водяной марки - длинна
    SIZE_X=200

    # Размер водяной марки - ширина
    SIZE_Y=30

    ###############################################################################

    promt_help() {
    SCRIPT_NAME=`basename $0`
    echo "$SCRIPT_NAME <-r> <-u URL> <-f FOLDER> <-o FOLDER>"
    echo
    echo "-r Просматривать вложенные директории."
    echo "-u URL, который используется для генерации водяной марки."
    echo "-f Директория, в которой будут искаться файлы для вставки водяной марки."
    echo "-o Директория, куда будет записан результат работы"
    }



    while getopts ru:f:o: OPT ; do
    case $OPT in
    r) let RECURSIVE=1
    ;;
    u) URL=$OPTARG
    let REQ_PARAMS=$REQ_PARAMS+1
    ;;
    f) FOLDER=$OPTARG
    let REQ_PARAMS=$REQ_PARAMS+1
    ;;
    o) OUTPUT_FOLDER=$OPTARG
    ;;
    *)
    ;;
    esac
    done

    if < $REQ_PARAMS -eq 2 > ; then
    if << ! -d $FOLDER >> ; then
    echo " Директория \"$FOLDER\" не существует."
    exit 3
    fi

    if < ! $URL > ; then
    echo " Указан пустой URL."
    exit 3
    fi

    CORRECT_URL=`echo $URL | egrep "^(http)|(https)|(ftp)://(www\.)?<0-9a-zA-Z.-_>+\\.<a-z>{2,5}"`
    if < ! $CORRECT_URL > ; then
    echo " Указанный URL не корректен."
    exit 3
    fi

    if << ! "$OUTPUT_FOLDER" >> ; then
    OUTPUT_FOLDER=$DEFAULT_OUTPUT_FOLDER
    fi

    if << ! -d "$OUTPUT_FOLDER" >> ; then
    mkdir -p "$OUTPUT_FOLDER"

    if << ! -d "$OUTPUT_FOLDER" >> ; then
    echo " Не удалось создать директорию \"$OUTPUT_FOLDER\" для выходных файлов."
    exit 3
    fi
    fi

    OLDIFS=$IFS
    IFS=`echo -en "\n\b"`
    IFS=$'\n'

    # Получаем список файлов для вставки водяной марки
    if < $RECURSIVE -eq 1 > ; then
    FILE_LIST=`find "$FOLDER" -type f -print | egrep $EXT`
    else
    FILE_LIST=`find "$FOLDER" -maxdepth 1 -type f | egrep $EXT`
    fi

    if << $FILE_LIST >> ; then
    # Создаем водяную марку.
    echo "<i> Создаем водяную марку $WATERMARK_NAME"
    convert -background 'rgba(255, 255, 255, 0.0)' -fill black -gravity center -font $FONT_FOLDER/$FONT_NAME -size ${SIZE_X}x${SIZE_Y} -pointsize 24 label:"$CORRECT_URL" $WATERMARK_NAME


    for file in $FILE_LIST ; do
    FILE_NAME=`basename $file`
    FILE_DIR_NAME=`dirname $file`

    echo "</i><i> Маркировка файла $file => $OUTPUT_FOLDER/$FILE_DIR_NAME/`basename $file`"

    if << ! -d "$OUTPUT_FOLDER/$FILE_DIR_NAME" >> ; then
    mkdir -p "$OUTPUT_FOLDER/$FILE_DIR_NAME"

    if << ! -d "$OUTPUT_FOLDER/$FILE_DIR_NAME" >> ; then
    echo " Не удалось создать директорию \"$OUTPUT_FOLDER/$FILE_DIR_NAME\" для файла \"$FILE_NAME\""
    exit 3
    fi
    fi

    composite -gravity SouthEast $WATERMARK_NAME $file "$OUTPUT_FOLDER/$FILE_DIR_NAME/$FILE_NAME"
    done

    IFS=$OLDIFS
    else
    echo "</i><i> Не неайдено ни одного подходящего файла для вставки водяной марки."
    exit 0
    fi


    else
    echo " Указано недостаточно параметров."
    echo
    promt_help

    exit 3
    fi

    </i></a-z>



    А загрузить скрипт можно по этой ссылке.

    Что делает скрипт. Он ищет файлы в указанной директории по расширениям указанным в переменной скрипта EXT, куда при желании вы сможете добавить шаблоны с другим расширениями (я использовал регулярные выражения) по примеру того, что там уже указано.

    Затем, скрипт создает водяную марку в месте, указанном в переменной WATERMARK_NAME. При желании опять же можно изменить значение этой переменной. Генерация прозводится с помощью утилиты convert все из того-же пакета imagemagick. Параметры можете изменить ручкам и с помощью переменных (сделано конечно у меня тут не очень хорошо, но можно и доработать потом). Что значат конкретные параметры, можно посмотреть здесь.

    После генерации водяной марки, мы проходим по всем найденным файлам и "приделываем" к ним ранее сгенерированную нами водяную марку с нашим URL и результат, с сохранением структуры папок записываем либо в ~/watermarks или туда, куда вы указали с помощью параметра -o.

    Вот вам пример:
    1
    watermark.sh -u "http://welinux.ru" -f ./


    и результат
    technowallpapers28.th.jpg

    PS:
    Дополнительные ссылки по imagemagick:
    http://www.imagemagick.org/Usage/annotating/
    http://www.imagemagick.org/Usage/fonts/
    http://www.imagemagick.org/Usage/text/


    Тэги: bash imagemagick watermark
    + 1 -
    Похожие Поделиться

    exelens 06.02.2010 18:16 #
    + 0 -
    Огромное!
    А то я упарился уже... Опять воруют контент на одном из проектов.
    Тексты рерайтят кое-как, а картинки используют мои =)
    digiwhite 06.02.2010 18:17 #
    + 0 -
    Поиграйся с настройкам цвета, размера и т.п. только :). То, что щас - не очень четко имхо :).
    digiwhite 06.02.2010 18:18 #
    + 0 -
    B шрифт любой другой :) Только полный путь к ним должен быть.
    krig 06.02.2010 19:41 #
    + 0 -
    Вотремарки тебя не спасут =)
    Я нашел уже кучу репостов картинок со своего проекта с отрезаными вотермарками =)
    exelens 06.02.2010 20:22 #
    + 2 -
    Может тебе пригодится.
    Обычно с похитителями контента я борюсь так:

    Пытаюсь договориться культурно:
    Пишу письмо с просьбой убрать мой материал.
    Смотрю хуизом кто владелец и пишу ещё одно письмо.

    Ищу рычаги:
    Смотрю кто хостит и пишу письмо хостеру. Обычно хостеры помогают наказать засранцев.
    Пишу письмо в Яндекс.
    Пишу письмо в Гугль.

    Кидаю из выдачи:
    Копирую целиком wgetом сайт, который упёр мой контент.
    Множу и размещаю его на бесплатных хостингах. 3 - 5 зеркал обычно хватает.
    Добавляю в соц закладки и жду индексации Яндексом.
    Продвигаю на 200 - 300 рублей сайты зеркала. Одну и туже страницу. В результате оно всё попадает в выдачу. Яндексу срывает башню. Он банит все сайты =) В том числе и тот, что спёр контент. Бывает правда не банит... а сайты зеркала получают ТИЦ как у оригинала (склеиваются сайты), ну тогда вешаем ссылки и рубим бабло.
    digiwhite 06.02.2010 21:22 #
    + 0 -
    Однако :)
    Daria 06.02.2010 23:04 #
    + 0 -
    хитрый план.
    exelens 06.02.2010 23:18 #
    + 0 -
    =))) ничего сложного =))

    В хорошем качестве hd видео

    Онлайн видео бесплатно


    Смотреть русское с разговорами видео

    Online video HD

    Видео скачать на телефон

    Русские фильмы бесплатно

    Full HD video online

    Смотреть видео онлайн

    Смотреть HD видео бесплатно

    School смотреть онлайн