如何通过使用excel,csv在图像上写值

时间:2018-08-31 03:24:26

标签: php photoshop

我在Excel工作表中有很多名字。我想一张一张地写它们。图像重复。同一张图片显示一个名字。 请告诉我如何使用Photoshop或其他方法编写代码。 http://prntscr.com/kowpr4

1 个答案:

答案 0 :(得分:3)

首先,我建议您将电子表格导出为一些开放的,非Microsoft的,非专有的格式,例如CSV文件。

假设它看起来像这样,称为"names.csv"

William, Gates
Kermit, Frog

现在,获取必不可少的 ImageMagick 的副本并进行安装。

现在,您需要生成高质量的徽章图像,而不是链接到的图像。我制作的是我的1200x760-因此,如果您希望一切正确对齐,请抓住它:

enter image description here

然后,您将需要一个脚本来遍历名称列表。我正在使用bash进行此操作,但是您可以使用Windows for循环,例如here

#!/bin/bash

counter=1
while IFS=', ' read first last; do
   filename="badge-$counter.jpg"
   echo Generating file $filename, for $first, $last

   magick -font ComicSansMSB -background none -fill magenta -size 420x60 caption:"$first" first.png
   magick -font Verdana      -background none -fill blue    -size 420x60 caption:"$last"  last.png
   magick badge.png first.png -geometry +710+360 first.png -composite last.png -geometry +710+460 -composite "$filename"
   ((counter+=1))
done < names.csv

因此,对于文件中的每一行,我都会读取名字和姓氏。我有一个针对每个文件(i)递增的计数器,以便可以生成唯一的文件名。

然后我制作一个小图像,其大小与文本字段匹配,名为"first.png,并带有名字。同样对于姓氏,一个名为"last.png"的文件。我只是为了娱乐而用不同的字体和颜色来做它们,因此您可以看到如何做。然后,我加载了徽章模板,并在设置了正确的位置之后,将名称组合到了徽章上并保存了唯一的文件名。

enter image description here

enter image description here


我已经标记了一张图片,所以您可以看到尺寸的来源:

enter image description here


关键字:ImageMagick,表单填写,表单完成,徽章,名称徽章,自动,自动,脚本化,命令行,命令行,Excel,CSV。