Всем привет.
Была у меня мыльница, делала хорошие снимки и сама проставляла дату на фотках. Недавно купил зеркалку, лет пять хотел, и эта зеркалка не делает дату на фотках. Теперь нужна программа, которая может проставить дату на фото у кучи фотографий. Дяля винды нашел кучу, правда все с кряками или ключами, а вот для линукса чет не могу. Кто знает или примерно подскажите прогу не GIMP конечно.
Решено смотри сообщение http://linuxforum.kz/index.php/topic,5848.msg28513.html#msg28513 (http://linuxforum.kz/index.php/topic,5848.msg28513.html#msg28513)
(http://storage5.static.itmages.ru/i/13/1208/h_1386528843_4750411_482afb18de.png)
На всякий случай копирнул код скрипта [attachurl=1]
Gwenview->Print master->Signature-> Дата и время из EXIF
Скрипт пакетной обработки для впечатывания даты и времени в фотографии (http://alexvoronkov.wordpress.com/2011/05/22/%D0%B2%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F%D1%85-%D0%B2-linux/)
что-то из набора Imagemagick должно уметь
http://www.multipole.org/discourse-server/viewtopic.php?f=1&t=20213
Цитата: Ramzes от 11 Ноября 2013, 11:59
Gwenview->Print master->Signature-> Дата и время из EXIF
Открыл фотки, выделил, но так и не нашел Print master :unsure:
Цитата: Ramzes от 11 Ноября 2013, 11:59
Скрипт пакетной обработки для впечатывания даты и времени в фотографии (http://alexvoronkov.wordpress.com/2011/05/22/%D0%B2%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D1%82%D1%8B-%D0%BD%D0%B0-%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F%D1%85-%D0%B2-linux/)
Чет там скрипт такой, что я ни че в нем не понял, ни вводные данные куда писать, хотя обычно $1 $2 $3, ни что он потом делает, а тот небольшой набор переменных вообще не впечатляет. Да к тому же работая с графикой охота работать из графики.
Цитата: sotrud_nik от 11 Ноября 2013, 12:10
что-то из набора Imagemagick должно уметь
http://www.multipole.org/discourse-server/viewtopic.php?f=1&t=20213
Так и не нашел как в ней можно вывести дату на картинку, хотя само приложение весьма мощное, но ведь тоже не графика.
Gwenview->Модули->Изображения->Мастер печати->Подпись-> Дата и время из EXIF
Данная опция вписывает дату и время непосредственно в распечатку фото, сама фотография (на жестком диске) не видоизменяется
Получаем дату съемки
identify -format "%[EXIF:DateTimeOriginal]" 123.jpg
Конвертируем с добавлением строчки даты
convert 123.jpg -pointsize 20 -fill black -gravity northwest -annotate +0+0 "Date: 2013:07:06 13:42:42" 123.png
В общем я остановился на FastStone Image Viewer через wine :huh:
Позор же, "домохозяйка-эдишн", где инженерный дух?
Цитата: hedgeven от 08 Декабря 2013, 20:38
Позор же, "домохозяйка-эдишн", где инженерный дух?
Наверно имеется ввиду не Linux way. Согласен позор, но
1. Что лучше тратить много времени на проставлении даты или фотографировать?
2. Жена достала, что я долго сижу за этим делом.
3. Мне нужен был простой не замысловатый способ, что бы да же жена могла сделать.
4. В линуксе чего тока нет, а с простыми вещами засада.
Может быть проще, написать скрипт с применением указанных выше инструментов, и назначить его на одну кнопочку?
Вот мой говнокод пример, основанный на рекомендациях выше:
https://gist.github.com/hedgeven/7869330
(http://storage5.static.itmages.ru/i/13/1208/h_1386528843_4750411_482afb18de.png)
Сохраняете этот код в convert.sh, даете ему права на исполнение. В качестве первого аргумента можно передать путь до каталога с фото. Если запустить просто без аргументов, то отработает в текущем каталоге. Пользуйтесь, дорабатывайте.
Ну, а nautilus scripts и/или zenity, надеюсь, сами освоете.
Мозг, мне до такого далеко. -_-
Есть пару вопросов: зачем 2 строчки:
-stroke '#000C' -strokewidth 2 -annotate +50+50 %[exif:DateTimeOriginal] \
-stroke none -fill white -annotate +50+50 %[exif:DateTimeOriginal] ${output_dir}/${f}
Одной последней не достаточно?
И скрипт не обрабатывает файлы имеющие в своем имени пробелы
/usr/share/nautilus-scripts/date_to_foto.sh
convert.im6: unable to open image `2013-12-07': Нет такого файла или каталога @ error/blob.c/OpenBlob/2638.
convert.im6: no decode delegate for this image format `2013-12-07' @ error/constitute.c/ReadImage/544.
convert.im6: no images defined `output/2013-12-07' @ error/convert.c/ConvertImageCommand/3044.
convert.im6: unable to open image `16-02-27.JPG': Нет такого файла или каталога @ error/blob.c/OpenBlob/2638.
convert.im6: no images defined `output/16-02-27.JPG' @ error/convert.c/ConvertImageCommand/3044.
Скорее всего надо где-то ковычки поставить тут к примеру for f in `ls $"{file_mask}"` но я в этом не селен. А так ваще круто, через nautilus скрипт работает на ура. Спасиб.
Две строки, чтобы сделать обводку. В первой рисуется "подложка", во второй сам текст. Просто я заметил, что без обводки белый текст на светлом фоне плохо видно. Для увеличения обводки, можно увеличить strokewidth, например до 5.
Для решения проблемы с пробелами в именах есть IFS. Смотрите исправленный вариант выше.
Еще немного улучшил проверку на передаваемые параметры.
При желании можно модифицировать, чтобы скрипт принимал список файлов для выполнения действий.
Цитата: hedgeven от 09 Декабря 2013, 12:40
IFS
Да работает :unsure: но чет я ваще в ступаре что это такое и как оно работает. Я думал ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, а потом оно куда-то вставляется. Но тут оно не куда не вставляется и при этом работает.
Мой вариант, отличается только размером шрифта 50 и цветом orange, ну я так привык
#!/bin/bash
[[ -z $1 ]] && input_dir=`pwd` || input_dir=$1
file_mask="*.JPG"
font_name="DejaVu-Sans-Book" # see all available variants: convert -list font|grep Font
output_dir="date_to_foto"
cd ${input_dir}
mkdir -p ${output_dir}
IFS=$'\n'
for f in `ls ${file_mask}`
do
convert ${f} -font ${font_name} -pointsize 50 \
-stroke '#000C' -strokewidth 2 -annotate +50+50 %[exif:DateTimeOriginal] \
-stroke none -fill orange -annotate +50+50 %[exif:DateTimeOriginal] ${output_dir}/${f}
done
И да хотел спросить, вот есть фотки портретные и альбомные(наверно так называется). Если фотка альбомная то все нормально, а если портретная то дата появляется в верхнем с права. как бы так сделать, что бы всегда в одном месте в не зависимости от ориентации изображения.
Внес еще исправления в скрипт, прошу полностью обновить у себя. Так же вынес цвет и размер шрифта в переменные. Исправил проблему с ориентацией опцией -auto-orient.
Цитата: hedgeven от 09 Декабря 2013, 14:30
Так же вынес цвет и размер шрифта в переменные.
Чего не вижу того не вижу, ткни носом.
Прошу прощения, старый вариант скопировал :)
Вставил ссылку на Gist, там как-то нагляднее.
Внес изменения в первый пост и закрепил его на верху.