//檢查GD模塊文件是否存在php
//D:\wamp\bin\php\php7.0.4\exthtml
//檢查GD模塊是否開啓php7
phpinfo();ui
//建立畫布
//準備顏色
//填充背景
//做畫
//保存,輸出
//關閉資源/銷燬(施放內存)code
//1.建立畫布
imagecreatetruecolor(x,y)htm
//2.準備顏色圖片
imagecolorallocate($img, 255, 255, 255)內存
$img 返回資源 rgb顏色utf-8
//3.填充背景資源
imagefill($img, x,y, color)
$img 返回資源 x座標 y座標 color要填充的顏色
//4.畫圖
imagesetpixel($img, x,y, color) 點
imageline($img, x1,y1, x2,y2, color) 線
//寫字
imagettftext($img, font-size, 角度, x1,y1, color, '.ttf', '寫啥')
5.輸出圖片
imagejpeg()
imagepng()
imagegif()
6.銷燬圖片資源
imagedestroy()
//畫點
<?php
header("content-type:text/html;charset=utf-8");
//1.建立畫布
$img = imagecreatetruecolor(500,500);
//參1,2 畫布寬和高
// var_dump($img);
//成功後返回圖象資源,失敗後返回 FALSE
//2.準備顏色
//imagecolorallocate(image, red, green, blue)
//參1 資源
//參2,3,4 RGB : 0-255 0x00~0xff
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0,0,0);
$red = imagecolorallocate($img, 255, 0,0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0,255);
$yellow = imagecolorallocate($img, 255,255,0);
//3.填充背景
// imagefill($img, x,y, $color)
imagefill($img, 0,0, $black);
//4.做畫
//畫點
// imagesetpixel();
//參1 資源
//參2,3 爲點的座標
//參4 點的顏色
imagesetpixel($img, 250,250, $white);
for ($i=0; $i < 1000; $i++) {
imagesetpixel($img, mt_rand(0,500),mt_rand(0,500), $white);
}
//5.保存,輸出
header("content-type:image/jpeg");
imagejpeg($img);
//imagejpeg($img) imagegif($img) imagepng($img)
//6.關閉資源/銷燬(施放內存)
imagedestroy($img);
//劃線
<?php
header("content-type:text/html;charset=utf-8");
//1.建立畫布
$img = imagecreatetruecolor(500,500);
//參1,2 畫布寬和高
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0,0,0);
$red = imagecolorallocate($img, 255, 0,0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0,255);
$yellow = imagecolorallocate($img, 255,255,0);
//3.填充背景
// imagefill($img, x,y, $color)
imagefill($img, 0,0, $black);
//4.做畫
//畫線
// imageline($img, x1,y1, x2,y2, $color)
// 參1 資源
// 參2,3 起始點的座標
// 參4,5 結束點的座標
// 參6 顏色
imageline($img, 500,0, 0,500, $red);
for ($i=0; $i < 200; $i+=10) {
// imageline($img, 100,100+$i, 300,100+$i, $red);
imageline($img,0+$i,0-$i, 500-$i,500+$i, $yellow);
}
//5.保存,輸出
header("content-type:image/jpeg");
imagejpeg($img);
//imagejpeg($img) imagegif($img) imagepng($img)
//6.關閉資源/銷燬(施放內存)
imagedestroy($img);
//封裝驗證碼
code(100,40,4,2);
function code($width=100,$height=40,$type=4,$sty=2)
{
//準備畫布
$img = imagecreatetruecolor($width, $height);
//準備顏色
$red = imagecolorallocate($img,255,0,0);
$green = imagecolorallocate($img,mt_rand(100,180),mt_rand(100,180),mt_rand(100,180));
$blue = imagecolorallocate($img,0,0,255);
$black = imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
$whate = imagecolorallocate($img,255,255,255);
$gray = imagecolorallocate($img,200,200,200);
//填充背景
imagefill($img,0,0,$gray);
//干擾點 和干擾線
for($i = 0;$i < $width;$i++){
imagesetpixel($img, mt_rand(0,$width-1), mt_rand(0,$height-1), $green);
}
for($i = 0;$i < $width/10;$i++){
imageline($img,mt_rand(0,$width-1), mt_rand(0,$height-1), mt_rand(0,$width-1), mt_rand(0,$height-1), $green);
}
//準備源字符
$str = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
switch ($sty) {
case '0':
$str = substr($str,0,10);
break;
case '1':
$str = substr($str,10,26);
break;
}
// echo strlen($str);
$str = str_shuffle($str);
$list = substr($str,0,$type);
// echo $list;
//寫字
// imagettftext(image, size, angle, x, y, color, fontfile, text)
for ($i=0; $i < $type; $i++) {
$x = $width/10 + ($width/$type)*$i;
imagettftext($img,mt_rand(14,19),mt_rand(-10,10),$x,mt_rand($height/2,$height/1.1),$black,'./font/'.mt_rand(1,5).'.ttf',$list[$i]);
}
header('content-type:image/jpeg');
imagejpeg($img);
imagedestroy($img); }