Това е методът, който използвам в момента добавяне на водни знаци или водни знаци към изображения в блога. Обикновено имам достатъчно снимки за статии и с този bash скрипт добавям водния знак за 2 или 3 секунди.
Преди малко използвах GIMP за масово редактиране. Тази опция, която видяхме в блога все още е валиден, но това ми се струва много по-бързо и както казах, това е това, което използвам сега.
Този метод е идеален и за фотографи, които трябва да предават маркирани изображения на клиенти, тъй като за няколко секунди ги обработвате
Разбира се, това е решение за потребители на Linux, аз използвам Ubuntu. Сега ви оставям скрипта и стъпка по стъпка обяснение, за да можете не само да го използвате, но и да разберете какво прави и да започнете да изучавате BASH. Има само 8 реда.
Употреба ImageMagick трябва да го инсталирате, за да работи скриптът за вас. Отворете терминала и въведете
sudo apt install imagemagick
С това можем да използваме функциите на ImageMagick, да изрязваме, преоразмеряваме, отслабваме, променяме формата, комбинираме изображения и т.н. Ако искате да научите повече, отидете на официалния му уебсайт.
Комо произведения
премиера GituHub с този скрипт. Все още трябва да се науча как да го използвам добре.
Системата, която съм подготвил се състои от 1 файл, 1 изображение и 2 папки.
Папката снимки е мястото, където поставям изображенията, към които искам да добавя воден знак. Y В папката продукция е мястото, където те се появяват вече редактирани.
watermark-ikkarocom.png е водният знак, който използвам
И накрая има .sh файл watermark.sh, който е този, който съдържа кода в BASH
Ако не сте сигурни какво представлява и как да работите с .sh, ето откъде да започнете Как да стартирате .sh файл
Обяснение на кода стъпка по стъпка.
Лесен начин да научите BASH програмиране е като разгледате примери за готови скриптове и програми. Това е кодът, който използвам.
#!/bin/bash
cd photos
for pic in *; do
composite -dissolve 90% -gravity southeast -geometry +40+30 ../watermark-ikkarocom.png $pic ${pic//.jpg}-marked.jpg
done
mv *-marked.jpg ../output
rm *
За улесняване на разбирането го обяснявам с редове.
#!/bin/bash
Това е shebang, който се използва за обозначаване на интерпретатора, който да се използва за кода.
cd photos
Влизаме в папката снимки, където ще сме оставили снимките, към които искаме да добавим водния знак. Този процес също може да бъде автоматизиран чрез изпращане на изображенията директно в папката от мобилния телефон. Но го оставям за по-късно.
for pic in *; do
Старт на цикъла for, където му казваме, че за всички снимки в папката трябва да изпълните инструкциите, които следват
composite -dissolve 90% -gravity southeast -geometry +40+30 ../watermark-ikkarocom.png $pic ${pic//.jpg}-marked.jpg
Това е частта ImageMagick. Казваме, че към снимките в папката добавяме още една отгоре, в този случай "watermark-ikkarocom.png" с прозрачност 90% или 10% в зависимост от това как искате да го гледате. Намира се в югоизточната част на изображението, тоест долу вдясно и с полета или разделяне от 40 и 30 пиксела по отношение на фоновото изображение.
В допълнение към името на изображенията, добавете суфикса -marked. За да можем да ги разграничим от тези, които не сме редактирали.
Тук бихме могли да добавим още инструкции и да преоразмерим изображението, да намалим теглото или да го компресираме.
Можете да използвате името на водния знак, който искате, като промените watermark-ikarocom.png
done
определя къде свършва цикълът for
mv *-marked.jpg ../output
Изображенията са останали в папката със снимки, така че с този ред ви казваме да вземете всички изображения с този суфикс -marked.jpg и да ги преместите в изходната папка. Използвайте относителния път. ../ е да отидете нагоре от директорията до мястото, където се намира изходът и след това да влезете вътре.
rm *
И накрая, тъй като вече имаме нашите снимки в изхода, изтриваме всички .jpg файлове, които са в снимките.
ъпгрейд
Правейки статията забелязах няколко подобрения.
- Винаги записвам във формат .jpg, въпреки че входното изображение е .png, това може да е проблем, ако оригиналното изображение има прозрачност.