gd庫

//檢查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); }

相關文章
相關標籤/搜索