http://pan.baidu.com/share/link?shareid=343815&uk=1865794164 不知道怎么回事上传不了图片,我把图片放百度网盘了。如上图,请问怎么改验证里面字的大小?代码如下:
<?php
 
session_start();
//session_register('SafeCode');
$type = 'gif';
$width= 92;
$height= 30;
header("Content-type: image/".$type);
srand((double)microtime()*1000000);
$randval = randStr(4,"");
if($type!='gif'&&function_exists('imagecreatetruecolor')){
$im = @imagecreatetruecolor($width,$height);
}else{
$im = @imagecreate($width,$height);
}
$r = Array(225,211,255,223);
$g = Array(225,236,237,215);
$b = Array(225,236,166,125);
$key = rand(0,3);
$backColor = ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]);
$borderColor = ImageColorAllocate($im,0,0,0);
$pointColor = ImageColorAllocate($im,255,170,255);
@imagefilledrectangle($im,0,0,$width -1,$height -1,$backColor);
@imagerectangle($im,0,0,$width-1,$height-1,"");
$stringColor = ImageColorAllocate($im,555,51,153);
for($i=0;$i<=100;$i++){
$pointX = rand(2,$width-2);
$pointY = rand(2,$height-2);
@imagesetpixel($im,$pointX,$pointY,$pointColor);
}
@imagestring($im,10,10,2,$randval,$stringColor);
$ImageFun='Image'.$type;
$ImageFun($im);
@ImageDestroy($im);
$_SESSION['validationcode'] = $randval;
function randStr($len=6,$format='NUMBER') {
switch($format) {
case 'ALL':
$chars='0123456789';break;
case 'CHAR':
$chars='';break;
case 'NUMBER':
$chars='0123456789';break;
default :
$chars='0123456789';
break;
}
$string="";
while(strlen($string)<$len)
$string.=substr($chars,(mt_rand()%strlen($chars)),1);
return $string;
}
;echo ' ';
?>

解决方案 »

  1.   

    无论如何,手册总是要看的。那是你行为的依据imagestring -- 水平地画一行字符串
    说明
    bool imagestring ( resource image, int font, int x, int y, string s, int col )imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。 
    imagettftext -- 用 TrueType 字体向图像写入文本
    说明
    array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
    image
    图像资源。见 imagecreatetruecolor()。 size
    字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。 angle
    角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。 x
    由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。 y
    Y 坐标。它设定了字体基线的位置,不是字符的最底端。 color
    颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。 fontfile
    是想要使用的 TrueType 字体的路径。 根据 PHP 所使用的 GD 库的不同,当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。 当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。 很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。 <?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';
    ?>  text
    文本字符串。 可以包含十进制数字化字符表示(形式为:&#8364;)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。 如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。 imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。