Внимание

Этот блог переехал по адресу yktoo.com/ru/

Attention

This blog has moved to yktoo.com/en/

August 25, 2011

Надписывание изображений для Picasa Web Albums ~ Watermarking pictures for Picasa Web Albums

Несколько переработанная и переведённая моя статья с Хабра.

Пролог

Люди, публикующие изображения в Интернете, наверняка задумывались о том, чтобы хоть как-то обозначить своё авторство.

Один из самых очевидных способов — добавлять на изображения надпись с указанием вашего веб-сайта, имени, копирайта или копилефта. Для этого домохозяйка откроет любимый графический редактор, выберет инструмент «Текст» и напишет красивыми буквами послание будущим поколениям.

Preface

Those of you who happen to author pictures and publish them on the Internet, must have thought about being able to claim your authorship for them.

One of the most obvious ways to do that is watermarking pictures by adding your URL, name, copyright and/or copyleft. An average Joe would open his favourite image editor, click the Text tool and write a magnificent message for the generations to come.
Однако если изображений много, процесс становится весьма нудным. А мы, поэты компиляции и скульпторы кода,— творческие личности, ужасно не любим рутины.

Вторая рутинная операция фотографа-блогера-графомана — загрузка изображений на уютный хостинг.

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

Для реализации вышеперечисленных задач я написал простой скрипт, который легко подстраивается под новые неожиданные нужды.
However, if there are many of them, the process turns to a chore, whereas we, compilation poets and code sculptors, detest routine tasks.

Another common task for a photographer/blogger is uploading pictures to their cozy image hosting.

To make their life easier and automate all this there's a multitude of tools for all possible OSes. But all of them have a shortcoming: they do it the way their author deemed right, and any deviation from the standard flow would again result in a lot of manual labour.

To address the issues above I created a simple script, which can also be altered to fit any new requirements.

Как пользоваться

Скрипт (назовём его picasa-upload) работает на bash и вызывается следующим образом:

How to use

The script (let's name it picasa-upload) is written for bash, and is to be called as follows:

picasa-upload [options] picture_dir [album_name]
  
Здесь:
  • picture_dir — каталог с изображениями. Скрипт найдёт все изображения с расширениями .jpg и .png, в том числе и во вложенных каталогах.
  • album_name — наименование фотоальбома Picasa Web Albums. Обязателен, если не указано -U.
  • options — любое сочетание следующих опций:
    • -D — не удалять файл с надписанным изображением.
    • -R — не уменьшать изображение до предопределённого размера (полезно, например, для панорам).
    • -U — не загружать изображения в Picasa (например, если вы просто хотите надписать изображения, перед тем, как отдать кому-то). Автоматически подразумевает -D.
    • -s — использовать «маленькую» версию надписи (в случае надписывания небольших изображений).
Where:
  • picture_dir — Path to directory with pictures. The script will recursively scan it and find all image files having .jpg and .png extensions.
  • album_name — Picasa Web Albums photo album name. Mandatory unless -U is specified.
  • options — Any combination of the following:
    • -D — do not delete the temporary watermarked image file.
    • -R — do not downsize the image (could be useful for eg. panoramas).
    • -U — do not upload the image to Picasa (for example, if you only want to watermark the images before handing them to someone). Implies -D.
    • -s — use the "small" watermark file (in the event of small images).
Например: Example:

picasa-upload -DRs "/home/vassily/Pictures/Holiday 2011" "Holiday 2011"
  
В самом начале скрипта задаются константы: максимальный размер изображения, пути к обычной и «маленькой» надписи и наименование аккаунта в Picasa Web Albums.

Надпись имеет смысл сделать в PNG с прозрачным фоном. Скрипт накладывает её с opacity 90% в правый нижний угол. Всё это можно просто изменить параметрами, указанными для composite.
Constants are declared in the beginning of the script: maximum image dimensions, path to the normal and the "small" watermark, and Picasa Web Albums account name.

It's recommended to create watermarks as PNG images with transparent background. The script will blend it with the image using opacity 90% in the bottom right corner. You can easily change it by tweaking composite parameters.

Требования

  • Необходимы Linux и bash.
  • Необходимо наличие ImageMagick (sudo apt-get install imagemagick, или как у вас там это делается).
  • Необходима установленная googlecl.
  • getopt должен поддерживать параметры с пробелами. Иными словами, getopt -T; echo $? должно вывести ровно 4. Ни больше, ни меньше.

Requirements

  • Linux and bash.
  • ImageMagick must be installed (Ubuntu/Debian: sudo apt-get install imagemagick, or check your Linux documentation on how to install it).
  • googlecl must be installed.
  • getopt must support arguments with spaces. In other words, getopt -T; echo $? must print out exactly 4.

Файл скрипта

Посмотреть код     Скачать с GitHub

Script file

View source     Download from GitHub