Плакат с 300 лицами - Фотопедия
       470

Плакат с 300 лицами

0 голосов
/ 24 сентября 2016

Вот моя проблема. У меня есть фотографии 300 человек в формате JPG, пронумерованные от 1 до 300. В Excel у меня 300 имен в том же порядке. Теперь я должен сделать плакат из 10 столбцов и 30 рядов с каждым лицом и их именем внизу. Я гуглю уже 300 минут и начинаю бояться, что мне придется вставлять каждую фотографию и имя вручную в слайд Powerpoint ...

Ответы [ 3 ]

2 голосов
/ 26 сентября 2016

Вы можете бесплатно загрузить ImageMagick с imagemagick.org . Тогда вы можете сделать это:

Во-первых, из Excel экспортируйте список имен в файл names.txt, по одному имени в строке.

Во-вторых, «маркируйте» каждый n.jpg n-й строкой в ​​names.txt, используя «sed» для извлечения n-й строки, создавая файл с именем n.png:

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

Наконец, выполните монтаж из полученных файлов n.png:

magick montage -tile 10x30 -label %l *.png montage.png
0 голосов
/ 26 сентября 2016

Для этого лучше всего подойдет Adobe InDesign. Создайте полотно, а затем с помощью инструмента «Рамка» (F) вытяните рамку на полях полотна (или на ее края), удерживая при этом мышь, с помощью клавиш со стрелками на клавиатуре, чтобы разделить большую рамку на множество ячеек. Затем нажмите на каждую ячейку и нажмите Cntrl + D или Cmd + D, чтобы разместить изображения по одному. Нажмите cmd + alt + shift + C, чтобы пропорционально центрировать каждое изображение внутри рамки. Не должно быть слишком долго!

0 голосов
/ 26 сентября 2016

Ну, не зная, какой программный инструмент вы хотите использовать, трудно дать точный ответ. Вот псевдокод, как я это сделаю. Matlab, например, мог собрать изображение, хотя это едва ли не лучший или самый быстрый инструмент.

Давайте представим, что вы загрузили 300 имен в массив строк символов и инициализировали графический фрейм. Тогда,

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)
  end
end

Здесь вы должны предварительно задать приращение местоположения от (j,k) до (j,k+1) как один размер изображения и задать title_location относительно текущей области изображения.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...