Here is my problem. I have pictures of 300 people in JPG format that are numbered 1 to 300. In excel, I have 300 names in the same order. Now I must make a poster of 10 columns and 30 rows with each face and their name underneath. I have been Googling for 300 minutes and I am beginning to fear I have to paste every photo and name manually to a powerpoint slide...

  • \$\begingroup\$ What software do you have available? Can you use Photoshop for example? \$\endgroup\$
    – K. Minkov
    Sep 24, 2016 at 19:55
  • \$\begingroup\$ I can get my hands on Adobe software but I have zero experience. Furthermore, I just have MS software and a macbook air to work on \$\endgroup\$
    – Fernando
    Sep 24, 2016 at 19:57
  • 1
    \$\begingroup\$ 10 by 30 images might look strange. It looks like a requirement you have, but also consider 15 by 20. This is a 3 by 4 aspect ratio, which most cameras use for images. Having the images and the grid of images in the same ratio might be more visually pleasing. If you need tips on that sort of layout stuff, Graphic Design might be a good place to ask. \$\endgroup\$
    – null
    Sep 24, 2016 at 20:17
  • \$\begingroup\$ Thanks Null! I just gave the 10 by 30 as a quick example, just to make the challenge I am facing clear; a grid with many images and names \$\endgroup\$
    – Fernando
    Sep 24, 2016 at 20:19
  • 3
    \$\begingroup\$ I'm voting to close this question as off-topic because this is a question about scripting Excel and some other software, which doesn't seem very directly related to photography. \$\endgroup\$
    – mattdm
    Sep 26, 2016 at 21:22

3 Answers 3


You can download ImageMagick for free from imagemagick.org. Then you can do this:

First, from excel, export your list of names into a "names.txt" file, one name per line.

Second, "label" each n.jpg with the n'th line in names.txt, using "sed" to extract the n'th line, creating a file called n.png:

for x in *.jpg
    n=`echo $x | sed -e s/.jpg//`
    magick $x -set label `sed -n -e "$n p" names.txt` $n.png

Finally, make your montage from the resulting n.png files:

magick montage -tile 10x30 -label %l *.png montage.png

Well, without knowing what software tool you want to use, it's a bit difficult to provide an exact answer. Here is the pseudocode way I'd do it. Matlab, for one, could assemble the image, tho' it's hardly the best or fastest tool.

Let's pretend you've loaded the 300 names into an array of character strings, and have initialized a graphics frame. Then,

for j = 1:15
   for k = 1:20
      place_image(image[k + (k-1)*j]) AT location(x=j, y = k)
      write(name_array[k + (k-1)*j]) AT title_location(x=j, y = k)

Here, you'd have preset the location increment from (j,k) to (j,k+1) as one image size, and preset title_location with respect to the current image area.


Adobe InDesign would be best for this. Create a canvass and then using a Frame Tool (F) draw out a frame to the margins of the canvass (or the edges)- whilst still holding a mouse use arrow keys on keyboard to divide big frame into many cells. Then click on each cell and press Cntrl+D or Cmd+D to place images one by one. Press cmd+alt+shift+C to proportionally center each image inside the frame. Shouldn't take too long!

  • \$\begingroup\$ I'd be shocked if AiD didn't support a macro. You really want to hit those keystrokes 300 times w/o a single error? \$\endgroup\$ Sep 26, 2016 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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