about 3 years ago

Дано: папка с картинками.

Требуется: на каждую картинку нанести надпись с именем этой картинки (прямо на изображении нарисовать)

Решение:

# For each JPG file in the current directory

# Place the name of the file (without the extension) to the bottom right corner inside the gray rectangle

# And save this new image inside the "annotated" subdirectory

mkdir annotated ; for i in *.jpg; do convert -background '#00000080' -fill white label:"${i%.*}" miff:- |composite -gravity SouthEast -geometry +0+3  - "$i" "annotated/$i"; done

В этом one-liner'е мы делаем:

  1. Создаём папку annotated для хранения меченых картинок
  2. Проверяем только JPG файлы
  3. Делаем магию при помощи ImageMagick
  4. Сохраняем меченую картинку в annotated

На меченой картинке в нижнем правом углу будет полупрозрачный прямоугольник, на котором белыми буквами будет написано название файла, без расширения.
Имя без расширения извлекается при помощи выражения ${i%.*}, рецепт стырен со stackoverflow.

 
comments powered by Disqus