I could not find a dedicated photo-editing section, hence posting here. Apologies if wrong place.


I have thousands of photos, which I need to show time/date/custom-text on all photos.

Editing all individuals photos will be impossible!

Is there any way to do this in batch-mode?


You can use ImageMagick to add text to photos, either overlaid on the photo or on a border. See the annotation section of the documentation for a number of examples. Because ImageMagick is a set of command line tools, you can easily incorporate it into batch processes using shell scripts and other scripting tools.

Example: I've got a photo of some flowers, and I want to add the file name in white text in the lower left corner of the image. Here's the photo:


I can use ImageMagick's convert command to generate a new file that shows the file name. (The command takes a number of parameters, so I'm going to break the line with backslashes, but you can enter it all on one line if you want.)

$ convert flowers.jpg -font CourierNewB -pointsize 14 \
      -draw "gravity southwest fill white text 12,12 'flowers.jpg'" \

The result is a new file names flowers_title.jpg:


| improve this answer | |

You can easily do it with free Faststone Image Viewer.

Select images, then go to Tools -> Batch Convert Selected Images, then click in Advanced Options and in tab Watermark or Text select the text you want to place on your photos (data from exif and/or your own text).

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.