This is a GPL 3.0 Python photowall generator, relying on ImageMagick. It is (and will remain) in "beta testing" version : I use it and it fits my requirements, but there is no guarantee that it won't crash in any different circunstances.
Python developers should be able to fix it and update it fairly easy, although the code is a bit old and could benefit from a face lifting (I wrote it in 2012).
An example of customization for Python developers: Polaroid captions are computed by function photowall.get_file_details. Just rewrite this function to decide what you want to use for caption. Current code (in the exception handler :$) takes the filename without extension and replaces underscores by new lines.
photowall.py <path> <target> [options] Arguments: <path> The path where photos are picked up from. <target> The path where the target photo is written. Except in POLAROID+RANDOM mode, the image will be blanked out first. Options: --polaroid Use polaroid-like images for the wall --pick-random Pick images randomly in the <path> folder. --help Display this message Size options: --nb-lines <nb> Number on lines of the target image. --line-height <height> Set the height of a single image. --width <width> Set final image width. --no-resize Resize images before putting in the wall. Polaroid mode options: --crop-size <crop> Minimum size to allow cropping an image, if it doesn't fit --no-caption Disable caption. --put-random Put images randomly instead of linearily. --sleep <time> If --put-random, time (in seconds) to go asleep before adding a new image. Collage mode options: --do-wrap Finish images on the next line?
Polaroid mode with caption
--polaroid --nb-lines 1 --pick-random
Polaroid mode with no caption
--polaroid --no-caption --nb-lines 1 --pick-random
--nb-lines 1 --pick-random
Polaroid random mode
--put-random --nb-lines 1 --pick-random
I built a graphical interface that should support all the command-line arguments. Use it with caution, I don't like writting GUIs !