代码如下:
<?php header('Content-type:image/jpeg'); $width=120; $height=40; $element=array('a','b','c','d','e','f','g','h','i','j','k','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $string=''; for ($i=0;$i<5;$i++){ <span style="white-space:pre"> </span>$string.=$element[rand(0,count($element)-1)]; } $img=imagecreatetruecolor($width, $height);//设置图片大小 $colorBg=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));//随机产生背景色 $colorBorder=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));//随机产生背景色 $colorString=imagecolorallocate($img,rand(10,100),rand(10,100),rand(10,100)); imagefill($img,0,0,$colorBg);//设置图片背景色 imagerectangle($img,0,0,$width-1,$height-1,$colorBorder);//构建矩形边框 for($i=0;$i<100;$i++){//画一百个小像素 <span style="white-space:pre"> </span>imagesetpixel($img,rand(0,$width-1),rand(0,$height-1),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)));//画一个单一的像素 } for($i=0;$i<3;$i++){//画三条随机线 <span style="white-space:pre"> </span>imageline($img,rand(0,$width/2),rand(0,$height),rand($width/2,$width),rand(0,$height),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200))); <span style="white-space:pre"> </span>//前两个为起点坐标,后两个为终点坐标,起点控制在左半边,终点控制在右半边 } //imagestring($img,5,0,0,'abcd',$colorString); imagettftext($img,14,rand(-5,5),rand(5,15),rand(30,35),$colorString,'font/SketchyComic.ttf',$string);//绘制文字,可以选择丰富的字体的方法 //说明:array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) imagejpeg($img); imagedestroy($img);
很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。
<?php
// Set the enviroment variable for GD
putenv(‘GDFONTPATH=‘ . realpath(‘.‘));
// Name the font to be used (note the lack of the .ttf extension)
$font = ‘SomeFont‘;
?>
imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。
Example #1 imagettftext() 例子
本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = ‘Testing...‘;
// Replace path by your own font path
$font = ‘arial.ttf‘;
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
原文地址:http://blog.csdn.net/yayun0516/article/details/42589599