1、让水印文字铺满图片:
大致效果:
代码:
function appendspreadtextmark($imagedir, $marktext)
{
$fontfile = "simsun.ttf";
$info = getimagesize($imagedir);
$imwidth = $info[0];
$imheight = $info[1];
$type = $info[2];//1 = gif,2 = jpg,3 = png,4 = swf,5 = psd,6 = bmp,7 = tiff(intel byte order),8 = tiff(motorola byte order),9 = jpc,10 = jp2,11 = jpx,12 = jb2,13 = swc,14 = iff,15 = wbmp,16 = xbm
$ext = image_type_to_extension($type, false);
$mime = $info['mime'];
$imgcrefunc = "imagecreatefrom".$ext;
$imgres = $imgcrefunc($imagedir);
$picrangelimit = $imheight > $imwidth ? $imwidth : $imheight;
$fintsize = (int)($picrangelimit / 50);
if ($fintsize < 5) {
$fintsize = 5;
}
$textcolor = imagecolorallocatealpha($imgres, 0, 0, 0, 100);
$charcount = mb_strlen($marktext, 'utf-8');
$steplengthx = $fintsize * 4;
$steplengthy = (int)($fintsize * $charcount * 1.2);
$numx = (int)($imwidth / $steplengthx) + 1;
$numy = (int)($imheight / $steplengthy) + 1;
$pointleft = 0;
$pointbottom = $steplengthy;
for ($iny = 0; $iny < $numy; $iny ++) {
$pointleft = 0;
for ($inx = 1; $inx < $numx; $inx ++) {
imagettftext($imgres, $fintsize, 45, $pointleft, $pointbottom, $textcolor, $fontfile, $marktext);
$pointleft += $steplengthx;
}
$pointbottom += $steplengthy;
}
header('content-type:' . $mime);
$imgrespfunc = 'image' . $ext;
$imgrespfunc($imgres);
imagedestroy($imgres);
}
$imagedir = "pic.jpg";
$marktext = "水印内容";
appendspreadtextmark($imagedir, $marktext);
2、简单验证码效果:
代码:
//创图像
$im = @imagecreatetruecolor(500, 150) or die("cannot initialize new gd image stream");
//分配颜色
$backgroundcolor = imagecolorallocate($im, 0, 0, 0);//第一个分配的颜色默认为背景
$textcolor = imagecolorallocate($im, 0, 0, 255);
//画像素点
for ($i=0; $i<500; $i++)
{
imagesetpixel($im, rand(0, 500), rand(0,150), $textcolor);
}
$textstr = '$im = @imagecreatetruecolor(100, 50)';
//写字符串(原图像、字体、x坐标、y坐标、待写字符串、字符串颜色)
imagestring($im, 4, 10, 10, $textstr, $textcolor);
$textstr = '$backgroundcolor = imagecolorallocate($im, 0, 0, 0)';
imagestring($im, 4, 10, 30, $textstr, $textcolor);
$textstr = '$textcolor = imagecolorallocate($im, 0, 0, 255)';
imagestring($im, 4, 10, 50, $textstr, $textcolor);
$textstr = 'imagestring($im, 5, 10, 10, $textstr, $textcolor)';
imagestring($im, 4, 10, 70, $textstr, $textcolor);
header("content-type: image/png");
imagepng($im);
imagedestroy($im);
希望与广大网友互动??
点此进行留言吧!