我最近被一所为幼儿提供远程(在线)教育的学校聘用。他们希望能够在孩子完成某些测试,作业等后通过电子邮件生成和发送证书(jpg或png图像)。显然,他们不会让所有老师在Photoshop中重新创建每个证书或其他东西并改变每个孩子的名字等;这太费时间了,我怀疑他们的老师甚至知道如何使用Photoshop。
因此,我想知道在PHP中为图像添加文本的最佳方法是什么。证书将像标准学校证书一样,名称行将为空白。我希望文本去那里。
我在PHP中这样做的原因是,教师可以通过这种方式访问whatever.com/generate-certificate,然后在字段中键入子名称,然后生成证书并将其发送给学生通过电子邮件即时。教师很容易。
希望这个问题有道理。简而言之,我只想在PHP中使用库或其他简单方法向图像添加一行文本(可能是jpeg)。
非常感谢!
答案 0 :(得分:1)
如果您不喜欢程序类型,可以使用imagick
<?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;
答案 1 :(得分:0)
有一个很棒的默认库叫GD,应该可以完成这项工作。
我的想法是如何制作你需要的东西: 1.为您的认证创建几个背景图像。 2.使用PHP GD库加载图像 3.写入文本并保存文件,或者如果流量较少,则立即呈现文件。
http://us1.php.net/manual/en/function.imagefttext.php
<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);
// Path to our ttf font file
$font_file = './arial.ttf';
// Draw the text 'PHP Manual' using font size 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');
// Output image to the browser
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>