افزودن واترمارک به تصاویر در ترمینال، به سادگی آب خوردن!

https://mehrad.js.org/fa/bedanim/معرفی-پادکست-Learn-Persian-with-Conversation-and-Chai-و-چند-مطلب-کوتاه-دیگر/

این نوشته نخستین بار در وبلاگ من پدیدار شد.

از اونجایی که داشتم فکر می‌کردم باید به تصاویری که توی بلاگ استفاده می‌کنم یک واترمارک خیلی کوچولوی خوشگل موشگل بزنم، و از اونجایی که واقعا از نصب کردن نرم‌افزار فقط برای یک منظور متنفرم و تمایلی به استفاده از سرویس‌های آنلاین نداشتم، دنبال یک راه گشتم تا توی bash این کارو انجام بدم.

نتیجه؟ خیلی هم عالی :)

این عکسی بود که من داشتم

اگه واترمارکتون در یک تصویر هست می‌تونید از دستور composite که جزئی از ImageMagick هست، استفاده کنید که امکانات خوبی مثل شفافیت هم بهتون می‌ده:


composite -dissolve 30% -gravity south watermark.jpg input.jpg output.jpg

پارامتر -dissolve 30% مقدار شفافیت، پارامتر -gravity south هم مکان قرارگیری واترمارک و باقی پارامترها هم آدرس عکس و واترمارک هستند. می‌تونید باقی کارهایی که با ImageMagick می‌تونید بکنید رو اینجا ببینید.

اگر هم می‌خواهید که این کار رو برای تمام تصاویر یک دایرکتوری انجام بدید هم با استفاده از حلقه زیر، کار تمومه :)


for pic in *.jpg; do
    composite -dissolve 30% -gravity south watermark.jpg $pic ${pic//.jpg}-marked.jpg
done

اما اگه عکسی ندارید چی؟ شاید بخواهید مثل من فقط یک متن ساده رو روی عکساتون بزارید. می‌تونید به جای اینکه آدرس فایل واترمارک رو بدید، با پارامترlabel: این کار رو به شکل زیر انجام بدید:


composite label:'CC-BY-NC | Mehrad Rousta' -gravity SouthEast input.jpg output.jpg

نتیجه زیر حاصل می‌شه:

اون چیزی که من دوست داشتم اما، ترکیب زیر بود:


convert -gravity SouthEast -pointsize 16 -fill "#fffdc3" -annotate +10+10 "CC-BY-NC | Mehrad Rousta" input.jpg output.jpg

که اینجور چیزی به ما تحویل می‌ده:

اگه می‌خواهید کارهای بیشتری بکنید پیشنهاد می‌کنم این نوشته سایت لینوکس ژورنال رو هم بخونید.