是否可以在图片里面做一个占位符,以后再替换?

问题描述 投票:0回答:1

我被要求做一个php软件,管理员可以导入一个新的图片。出席证 模板,然后导入一个名称列表,软件应该用列表中的名称生成证书图像。

我的初步想法是,证书应该是以图像的形式存在,并且有一个占位符来代替名字,比如说。

enter image description here

在这里,我们可以替换为 <Type Person's Name Here> 占位符与列表中的名字。

不幸的是,这都是理论上的,我不能只在列表中搜索占位符。.jpg.png 文件来代替它。

经过研究,我发现有些网站提供的证书模板是一种开放的标准。.ai.eps 都可以用Adobe Illustrator打开,然后你会发现所有的文字都是可以编辑的,你只需要替换名字占位符就可以了。例子.

问题是这两种文件类型都是专有的,我怀疑我是否能找到一个php库来轻松编辑它们。

这和以下情况非常相似 20253386除了证书模板需要改变,如果我只有一个证书模板,那么我只需要知道名字占位符的坐标,然后使用 Imagick::annotateImage 但对于可导入的模板,我不知道应该根据证书的设计把名字放在哪里。

那么我还有什么其他的选择吗? 有什么开放的标准可以用于图像模板吗? 有什么其他的方法可以解决这个问题吗?

php adobe-illustrator image-editing
1个回答
0
投票

我会把坐标的问题推给用户,为模板图片设计一些简单的编码系统,或许可以使用文件名。例如,如果你有两个文件。

CertificateOfAttendance2020 name@200,200 description@200,300 date@100,500.png
CertificateOfEnrolment2020 name@200,200 date@100,500.png

你可以解析它们的名字,比如用空格分割,把第一个作为名字,把其他的用@分割,把第一个位子作为字段的名字,第二个位子作为X,Y的位置。

在选择器中向用户显示模板名称部分。当他们选择例如考勤证书时,说 "这个证书需要三个额外的信息位",然后把这些字段动态地放在你的用户界面上。

Name:
Description:
Date: defaulted to today

或者当他们选择注册时,只需向他们展示两个字段:


让用户输入他们想要的东西,用一些工具把这些东西放在坐标上。是设计图像的人应该提供坐标。如果你也要写一个工具,那么工具可以给文件命名。也许你可以有一些方法来编码leftrightcenter align,字体大小和脸部......也许最终你会在文件名中放一块css,然后把整个东西扔掉,用一个描述世界上最复杂的证书的html文件来代替它,并且在html里面有占位符,图像只是一个背景:)

生成图片,可以用imagemagick这样的图片库,也可以用html divs来生成大图片和绝对位置的图片,然后用wkhtmltopdf来生成pdf......有很多选项,而且......。我们不是来为你设计的... ... (即使它可能看起来像我所做的)。我们不 "为你设计系统 "的原因是,什么是最好的系统是相当主观的,没有正确的答案--我在上面谈到的方法有很多潜在的缺陷,可能会使它不适合你的情况。我的观点是,你需要找到一些方法来存储你需要要求的数据(名称,描述)与提供背景的图像和信息,以驱动这些东西应放置在哪里。 - 我试图让这个 "答案 "充满 "可以做 "和 "也许",而不是 "应该做",因此,我认为它实际上只是对一个大多偏离主题的问题的延伸评论--这里只有一个事实使它真正成为一个答案(上面的黑体字)。

© www.soinside.com 2019 - 2024. All rights reserved.