基本上我必须使用需要我添加参与者姓名并上传图片的 ID Card PHP 事物。我有一个身份证的基本模板,我正在使用 PHP 添加名称。我必须在特定地点添加参与者的图片。该名称有效,但我无法在生成的 PHP 图像上添加参与者的图片。这是我的代码:
我应该如何在 PHP 生成图像上添加图片。
抱歉,如果这令人困惑:/
基本上我必须使用需要我添加参与者姓名并上传图片的 ID Card PHP 事物。我有一个身份证的基本模板,我正在使用 PHP 添加名称。我必须在特定地点添加参与者的图片。该名称有效,但我无法在生成的 PHP 图像上添加参与者的图片。这是我的代码:
我应该如何在 PHP 生成图像上添加图片。
抱歉,如果这令人困惑:/
将Imagick用于此类事情。有一种方法combineImages()
可以用来实现您的目标。
您可以使用php.ini 中的imagecopyresampled方法来完成。
我在这里创建了一个示例:http: //artuc.my.phpcloud.com/artuc/输入名称、ID 并选择一个图像来放置它。
这是我使用的代码:
header('Content-Type: image/jpeg');
$canvasImage = imagecreatefromjpeg('sample.jpg');
$bgcolor = imagecolorallocate($canvasImage, 255, 255, 255);
imagefill($canvasImage, 0, 0, $bgcolor);
//Place person picture
$bgImage = $_POST['idPic'];
$img = imagecreatefromjpeg($bgImage);
$imageSize = getimagesize($bgImage);
imagecopyresampled($canvasImage, $img, 15, 17, 0, 0, $imageSize[0], $imageSize[1], $imageSize[0], $imageSize[1]);
$fontFile = "Arial.ttf";
//Place person name
$black = imagecolorallocate($canvasImage, 0, 0, 0);
imagettftext($canvasImage, 18, 0, 220, 35, $black, $fontFile, $_POST['idName']);
//Place person id
$black = imagecolorallocate($canvasImage, 0, 0, 0);
imagettftext($canvasImage, 18, 0, 220, 75, $black, $fontFile, $_POST['idNum']);
//Save Image
imagejpeg($canvasImage);
imagedestroy($canvasImage);
您已经使用 GD 完成了大部分工作,您需要做的是使用imagecopymerge在基础图像上的指定点将一个图像绘制在另一个图像之上。PHP.net 在链接页面上有很多示例。