如何利用EXCEL、CSV在图像上写值

2022-09-04 00:00:00 php photoshop

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


解决方案

首先,我建议您将电子表格导出为某种开放、非微软、非专有的格式,如csv文件。

假设它如下所示,名为"names.csv"

William, Gates
Kermit, Frog

现在,获取一份必不可少的ImageMagick并安装它。

现在您需要生成一个像样的质量徽章图像,而不是您链接到的可怕的徽章图像。我做了我的1200x760-如果你想让东西正确地对齐,就拿这个吧:

然后,您将需要一个脚本来迭代名称列表。我使用bash,但您也可以使用Windowsfor循环,如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"的文件。我用不同的字体和颜色做它们,只是为了好玩,这样你就可以看看怎么做了。然后我加载工卡模板,在设置正确的位置后,将名称合成到工卡上,并使用唯一的文件名保存。


我已经标记了一张图像,这样您就可以看到尺寸的来源:


关键词:ImageMagick、表单填写、表单填写、徽章、姓名徽章、自动、自动、脚本化、命令行、命令行、Excel、CSV。

相关文章