如何使用来自URL的文本覆盖图像?

时间:2013-03-14 12:07:37

标签: php image-processing

首先让我总结一下情况:

我们目前为当地零售商运行奖励系统,目前通过电子邮件发送给客户的优惠券是一个简单的PNG文件,可以打印并返回商店以获得促销折扣。

我们希望在点击发送到其电子邮件地址的链接时将客户会员编号和名称叠加到凭证上。我们的电子邮件系统允许我们个性化每个客户收到的链接。

例如,客户收到以下链接时:www.website.com/testvoucher.htm

现在从一些有限的经验来看,我理解可以使用php覆盖凭证图像来创建个性化凭证。我想这个链接会变成这样的:

www.website.com/testvoucher.php?membernumber='2100000'&membername='Mrs%20Smith'

我的问题是如果可能的话,如何使用php创建一个从URL个性化的图像?

非常感谢任何反馈。

谢谢,

2 个答案:

答案 0 :(得分:2)

您将要查看ImageMagick API。更具体地说,annotateImage函数描述了here

<?php
    /* Create some objects */
    $image = new Imagick();
    $draw = new ImagickDraw();
    $pixel = new ImagickPixel( 'gray' );

    /* New image */
    $image->newImage(800, 75, $pixel);

    /* Black text */
    $draw->setFillColor('black');

    /* Font properties */
    $draw->setFont('Bookman-DemiItalic');
    $draw->setFontSize( 30 );

    /* Create text */
    $image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

    /* Give image a format */
    $image->setImageFormat('png');

    /* Output the image with headers */
    header('Content-type: image/png');
    echo $image;
?>

从功能文档页面粘贴的副本

您只需通过指向www.website.com/testvoucher.php?membernumber=2100000&membername=Mrs%20Smith的链接向他们发送电子邮件,其中包含略微修改的上述PHP代码,以使用凭证图片并从网址获取文字。

答案 1 :(得分:0)

您可以使用GD Image库:

http://php.net/manual/en/book.image.php

您可以使用多个功能根据其扩展名打开图像,例如。 :

http://www.php.net/manual/en/function.imagecreatefromjpeg.php用于JPEG

PNG的

http://www.php.net/manual/en/function.imagecreatefrompng.php

此外,您可以通过$_GET['membername']获取名称,并使用以下内容将其打印在图像上

http://www.php.net/manual/en/function.imagefttext.php