我想创建一个自定义验证码。
所以我需要将文本和背景图像转换为单个图像;
现在我只能在 imagecolorallocate()中使用背景颜色
这是我的代码
<?php
$text = rand (1000, 9999);
$my_img = imagecreate( 200, 80 );
$background = imagecolorallocate( $my_img,255, 255, 255);
$text_colour = imagecolorallocate( $my_img, 0, 0, 255 );
$line_colour = imagecolorallocate( $my_img, 255, 255, 255 );
imagestring( $my_img, 4, 30, 25, $text, $text_colour );
imagesetthickness ( $my_img, 5 );
imageline( $my_img, 30, 45, 165, 45, $line_colour );
header( "Content-type: image/png" );
imagepng( $my_img );
imagecolordeallocate( $line_color );
imagecolordeallocate( $text_color );
imagecolordeallocate( $background );
imagedestroy( $my_img );
?>
答案 0 :(得分:2)
<?php
function LoadJpeg($imgname)
{
if(!$im)
{
/* Create a black image */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an error message */
imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}
return $im;
}
header('Content-Type: image/jpeg');
$img = LoadJpeg('bogus.image');
imagejpeg($img);
imagedestroy($img);
?>
答案 1 :(得分:1)
您可以使用 imagecreatefromjpg PHP函数或基于图像类型的任何相关函数,例如 imagecreatefrompng 。
这将使用您可以用作背景文件的所选文件在PHP中创建一个图像元素。
来自PHP manual。
您的下一个选项是使用 imagecopymerge(),它将使用现有的图像元素并将其与另一个图像合并。来自PHP manual
的信息答案 2 :(得分:1)
要为新图片添加背景,您需要使用imagecreatefrompng
代替imagecreate
。
您可以浏览另一个堆栈溢出link