php开发工程师名片,PHP编程:利用PHP自动生成印有用户信息的名片

这篇博客介绍了如何使用PHP和GD库自动生成带有用户信息的名片。用户在网页应用中输入姓名、城市和州的信息,提交后通过PHP处理,将这些信息添加到预设的名片背景图片上,生成一张印有用户信息的个性化名片。这个过程涉及到了表单创建、用户输入处理、图片处理和文字在图片上的定位。通过这个实例,展示了PHP在图像处理方面的能力和实用性。
摘要由CSDN通过智能技术生成

《PHP编程:利用PHP自动生成印有用户信息的名片》要点:

本文介绍了PHP编程:利用PHP自动生成印有用户信息的名片,希望对您有用。如果有疑问,可以联系我们。

前言

PHP教程无论是自己要在精心P过的自拍上添加个性文字,或者是摄影爱好者要在拍摄的作品里添加水印,亦或是在网页或者移动应用中实时生成文字和图片的组合,我们都需要找到一个合适且靠谱的方法来将图片和文字完美的结合在一起.

PHP教程所以,“最好的编程语言”PHP及其GD库就给我们提供了这样一套简单且高效的解决方案.

PHP教程我知道,这时候有个实例才是最好的~ 下面就让我来举个简单的栗子!

PHP教程目标

PHP教程将用户在网页应用中输入的个人信息与图片结合,生成一张印有用户信息的名片.

PHP教程效果

PHP教程1 预设一张图片,作为名片背景

PHP教程

a0edb6592d11ecffb2acc02f4686d736.png

名片背景

PHP教程2 用户信息输入

PHP教程

457644e33890136d4e8a73f73335b194.png

信息输入

PHP教程3 名片生成(点击Continue之后)

PHP教程

e16aabb35511bd035d466fab4aa752c8.png

名片生成

PHP教程步骤

PHP教程在一切开始之前,请使用phpinfo() command来确认GD库已安装.

PHP教程首先,我们要做的事情很简单,新建一个PHP文件,就叫它main.php吧.

PHP教程在main.php中,理论上我们需要以下几行代码(本代码基于CakePHP 3):

PHP教程

//创建一个表单提供用户输入功能

echo $this->Form->create();

//只保留value属性,其他属性已省略

echo $this->Form->input(

'First Name',['value' => $firstname, '...' => '...', ...]);

echo $this->Form->input(

'Last Name',['value' => $lastname, '...' => '...', ...]);

echo $this->Form->input(

'City',['value' => $city, '...' => '...', ...]);

echo $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).

"&location=".strtoupper($city)." ".strtoupper($state), ['fullBase' => true]);

/*

* 上面的代码相当于:

* image.php?first=%E5%90%8D&last=%E5%A7%93&location=%E5%9F%8E%E5%B8%82

*/

//表单提交

echo $this->Form->button('CONTINUE', ['type' => 'submit']);

//关闭表单

$this->Form->end();

PHP教程接下来,就是创建Where amazing happens的image.php了.包括图片设置,获取用户信息,将文字信息添加到图片上,所有的一切都将在这一步完成.

PHP教程让我们通过代码来一探究竟吧.

PHP教程

// header() 函数向客户端发送原始的 HTTP 报头.

header('Content-type: image/jpeg');

// 由文件或 URL 创建一个新图象,这里的text.jpg就是效果1显示的预设图片

$rImg = ImageCreateFromJPEG("test.jpg");

// 为一幅图像分配颜色

$cor = imagecolorallocate($rImg, 0, 0, 0);

// 我们可以自定义与图片结合的文字字体

$font = "./arial.ttf";

// 设置最终生成图片的宽度以及文字相对于图片所在的高度

$imgWidthSetting = 676;

$textHeightOffset = 220;

// 解码main.php里img标签已编码的URL字符串,包括first, last以及location

$first = urldecode($_GET['first']);

$last = urldecode($_GET['last']);

$location = urldecode($_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_变量[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, $textHeightOffset+120, $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);

// 输出图象到浏览器或文件,quality 为可选项,范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大)

imagejpeg($rImg,NULL,100);

// Free up memory, imagedestroy() 释放与 image 关联的内存.

imagedestroy($rImg);

PHP教程到这里,我们就完成了通过PHP把文字添加到图片上的所有步骤.当用户输入个人信息并提交表单后,通过image.php,效果3的名片就会自动生成.

PHP教程总结

PHP教程利用PHP将文字与图片结合虽然简单,但可以衍生出很多不同的应用方法.譬如,我们可以将名片背景及生成的名片隐藏起来,只对用户显示信息输入界面.同时,我们在代码中接入打印机的API.这样,当用户输入完自己的信息点击继续之后,显示着用户信息的名片就会直接打印出来.这很适用于用户参加线下聚会活动check in时的场景.

PHP教程总之,PHP作为“最好的编程语言”,编码不统一,性能遭诟病,语法不严谨.的确,PHP的槽点太多,足够我们黑三天三夜.但我们又必须承认,PHP及其庞大的内置函数库为网页开发者们提供了便捷且强有力的工具.你看,简单的几个函数,就可以完美实现文字与图片的结合,所以PHP还是有很多人支持的.希望本文对大家学习PHP有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值