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


How to overlay an image with text which comes from the URL?

首先让我总结一下情况:

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

我们想覆盖客户的会员号码和名称到代金券,当他们点击一个链接,这是发送到他们的电子邮件地址。我们的电子邮件系统允许我们个性化每个客户收到的链接。

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

现在,从一些有限的经验的问题,我明白这将是可能的使用php覆盖代金券图像,以创建个性化的代金券。我想链接应该是这样的:

www.website.com/testvoucher.php ? membernumber = ' 2100000 ', membername = % 20史密斯夫人的

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

如有任何反馈,将不胜感激。

谢谢,

您将需要查看ImageMagick API。更具体地说,这里描述的annotateImage函数。

<?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代码略有修改,以使用凭证图像并从url获取文本。

您可以使用GD图像库:

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

您可以使用几个函数来打开图像根据他们的扩展,例如。:

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

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

也可以通过$_GET['membername']获取名称,并使用

将其打印在图像上:http://www.php.net/manual/en/function.imagefttext.php