手机版

用PHP自动生成印有用户信息的名片

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

无论是想要在精心拍摄的自拍中加入个性化的人物,还是摄影师想要在自己拍摄的作品中加入水印,或者在网页或移动应用中实时生成人物和图片的组合,我们都需要找到一种合适可靠的方式,将图片和文字完美结合。

因此,“最好的编程语言”PHP及其GD库为我们提供了如此简单高效的解决方案。

我知道,这个时候,举个例子是最好的~我举个简单的栗子吧!

目标

将用户在网页应用中输入的个人信息与图片结合,生成印有用户信息的名片。

影响

1预设一张图片作为名片的背景

名片背景

2用户信息输入

信息输入

3名片生成(点击继续后)

名片生成

步骤

在一切开始之前,请使用phpinfo()命令确认GD库已安装。

首先,我们要做的很简单。创建一个新的PHP文件,并将其称为main.php。

在main.php,理论上我们需要以下几行代码(这段代码基于CakePHP 3):

?Php//创建表单提供用户输入功能echo $ this-Form-Create();//只有value属性被保留,其他属性省略了echo $ this-form-input('名字',['value'=$名字','=' .',]);回显$this-Form-input('姓氏',['value'=$lastname,'.'='.',]);回显$this-Form-input('City ',['value'=$city,'.'='.',]);回显$this-Form-input('State ',['value'=$state ','='.',]);/* *将img标记指向一个名为image.php的PHP文件。*所有用户输入信息将以URL的形式保存在img标签的src属性中。*表格提交后,image.php可以通过GET获得。*所有变量都已经被PHP自己的strtoupper函数转换成大写。*/echo $ this-Html-image(' image . PHP?first='。' strtoupper($firstname),'last='。' strtoupper($lastname),'位置='。' strtoupper($city . '。strtoupper($state),[' full base '=true]);/* *上面的代码相当于:* img src='http:image.php?First=名字last=姓氏location=city '/*///表单提交echo $ this-form-button(' continue ',[' type '=' submit ']);//关闭表单$ this-Form-end();接下来,是时候创造一个神奇发生的image.php了。包括图片设置、获取用户信息、给图片添加文字信息,这一切都将在这一步完成。

让我们通过代码找出答案。

?php//header()函数将原始的HTTP头发送给客户端。标题(' Content-type : image/JPEG ');//从文件或URL创建新图像,其中test.jpg是效果1中显示的预设图像$ rimg=imagecreateFromjpeg(' test . jpg ');//为图像分配color $ cor=imagecolorrocent($ rimg,0,0,0);//我们可以自定义文本字体$font='。/arial.ttf '结合图片;//设置最终生成图片的宽度和文本相对于图片的高度$ imgWidthSetting=676$ textHeightOffset=220//解码main.php img标签编码的URL字符串,包括第一个、最后一个和位置$ first=URL decode($ _ get[' first ']);$ last=URL decode($ _ GET[' last ']);$ location=URL decode($ _ GET[' location ']);/* *获取要添加到图片中的文本范围。Imagettfbbox()返回一个包含8 *个单元格的数组,这些单元格代表文本轮廓的四个角。*/$width_first=imagettfbbox(60,0,$font,$ first);$width_last=imagettfbbox(70,0,$font,$ last);$ width _ location=imagettfbbox(35,0,$font,$ location);//四舍五入一,$width_ variable [2]表示右下角的x坐标位置$ x _ first=ceil($ imgwidthsetting-$ width _ first[2]);$ x _ last=ceil($ imgWidthSetting-$ width _ last[2]);$ x _ location=ceil($ imgWidthSetting-$ width _ location[2]);//使用imagettftext()函数将文本“写入”imagettftext ($ rimg,60,0,$ x _ first,$ textheightoffset120,$ cor,$ font,$ first);imagettftext($rImg,70,0,$x_last,$textHeightOffset 210,$cor,$font,$ last);imagettftext($rImg,35,0,$x_location,$textHeightOffset 290,$cor,$font,$ location);//将图像输出到浏览器或文件。质量可选,范围从0(最差质量,较小文件)到100(最佳质量,最大文件)imagejpeg($rImg,NULL,100);//释放内存,imagedestroy()释放与映像关联的内存。image destroy($ RimG);至此,我们已经通过PHP完成了图片添加文字的所有步骤。用户输入个人信息并提交表格后,image.php将自动生成效果3的名片。

摘要

用PHP组合文字和图片很简单,但是可以衍生出很多不同的应用方法。例如,我们可以隐藏名片的背景和生成的名片,只向用户显示信息输入界面。同时,我们在代码中访问打印机的API。这样,用户输入自己的信息并点击继续后,显示用户信息的名片将直接打印出来。这非常适合用户参加线下聚会活动签到的场景。

总之,PHP作为“最好的编程语言”,在编码上并不统一,在性能上饱受诟病,在语法上也不严谨。的确,PHP的槽太多了,足够我们三天三夜的摸黑。但是我们必须承认,PHP及其庞大的内置函数库为web开发人员提供了一个方便而强大的工具。你看,几个简单的函数就能完美实现文字和图片的组合,所以PHP被很多人支持。希望这篇文章对大家学习PHP有所帮助。

版权声明:用PHP自动生成印有用户信息的名片是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。