2013-08-07 126 views
-1

基本上我必须使用身份证PHP的东西,需要我添加参与者的名称并上传图片。我有一个ID卡的基本模板,我使用PHP来添加名称。我必须在特定位置添加参与者的照片。该名称正在工作,但我无法在生成的PHP图像上添加参与者的图片。这里是我的代码:PHP图像 - 使用PHP创建的另一个图像上添加图像

http://chopapp.com/#arcqwgf4

我应该如何去增加在PHP图片生成图像。

很抱歉,如果这是令人困惑:/

回答

0

您已经使用GD的方式已经很多了,您需要做的就是使用imagecopymerge在基础图像的指定点上绘制一个图像在另一个图像上。 PHP.net在链接页面上有很多例子。

+0

这个http://chopapp.com/#6m56tq6u有什么问题,它不会输出图像。 – Tayyab

+0

如果直接访问脚本,脚本会输出什么内容?另外,你是否检查过错误日志以查看是否有错误被抛出?我有一种感觉,它与'$ _POST ['id']' – bizzehdee

+0

$ _POST ['id']在我添加imagecopymerge函数之前工作。它应该在屏幕上输出最终图像,但不显示任何内容。 – Tayyab

0

使用Imagick对于喜欢这些东西。有一种名为combineImages()的方法,可以实现您的目标。

+0

是不是可以由我所用的方法来做到这一点?我不知道Imagick:S – Tayyab

0

你可以在php中使用imagecopyresampled方法。

我在这里创建了一个示例:http://artuc.my.phpcloud.com/artuc/输入name,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);