-
-
//準備畫布
- $im = imagecreatetruecolor(500, 300); > >
//準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255) ;
//背景填成黑色
- imagefill($im,0,0, $black);
//畫一個長方形,填充成白色
- imagefilledellipse($im, 258, 151, 200, 200, $white);
- //輸出瀏覽器或儲存起來
- header("content-type:image/png");
- //輸出圖片
- imagepng($im);
//關閉畫布
- imagedestroy($im);
- ?>
-
-
複製程式碼
php圖片處理函數
1,數學函數
2,圖片處理函數
數學函數:
1,max();
2,min();
3,mt_rand();隨機取一個數字
複製程式碼複製碼
mt_rand隨機取一個值
-
-
-
-
//隨機從一個陣列中取一個值
- $arr = array("a ","b","c","d","e");
$rkey = mt_rand(0,count($arr)-1);
echo $arr[$rkey];
?>
複製程式碼
4.ceil() ;天花板
5.floor();
6.round();四捨五入
-
-
-
-
echo ceil(2.4);//3
- echo floor(2.4);// 2
- echo round(2.4);//2
- echo round(2.6);//3
?>
複製碼
6.pi(); //π 取圓周率
?> echo M_PI; ?>
>複製程式碼
圖片處理函數使用場景
1.驗證碼
2.縮放
3.裁剪
4.水印
php中穿件影像的五個步驟
1.準備畫布
2.準備塗料
3.在畫布上畫圖像或文字
4.輸出最終影像或曹村最終影像
5.釋放畫布資源-
- 例:
-
-
-
-
-
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300); //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $white = imagecolorallocate($im, 255, 255, 255);
- //3.在畫布上畫圖像或文字
- //如果不填滿背景,預設是黑色
- imageellipse($im,258,151,200,200,$white);
//4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
imagepng($im); //5.釋放畫布資源 imagedestroy ($im); ?>
複製程式碼
繪製影像:
imagefill();
imagesetpixel();//畫像素點
imageline();//畫線
imagerectangle();//畫一個長方形
imagepolygon();//畫一個多邊形
imageellipse();//畫一個橢圓
imageare();畫一個圓弧
imagechar();//水平的畫一個字符
imagestring();//水平的畫一行字串
- 例:
-
-
-
-
-
-
//畫線
-
//1.準備畫布
- $im = imagecreate (500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $white = imagecolorallocate($im, 255, 255, 255); /p>
//3.在畫布上畫圖像或文字
- //如果不填滿背景,預設是黑色
- imageline($im,0,0,500,300,$white);
- imageline($im,0,300,500,0,$white);
- imageline($im,0,150,500,150,$white);
- imageline($im,250,0,250,300,$p. 🎜>
//4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
//5.釋放畫布資源 imagedestroy($im); ?>
複製程式碼例:
-
-
//添加干擾素
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $white = imagecolorallocate($im, 255, 255, 255);
//3.在畫布上畫圖像或文字
- //產生隨機的點
- for ($i=0; $i
imagesetpixel($im,mt_rand(0,500),mt_rand(0,300),$white);
}
- //產生隨機的線 p>
for ($j=0; $j imageline($im, mt_rand(0,500), mt_rand(0,300), mt_rand(0,500), mt_rand(0,300 ), $white);
- }//4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- / /5.釋放畫布資源
- imagedestroy($im);
- ?>
-
複製程式碼
範例:
-
-
//畫長方形:
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $white = imagecolorallocate($im, 255, 255, 255);
//3.在畫布上畫圖像或文字
- imagerectangle($im, 20, 20, 480, 280, $white);//
- imagefilledrectangle($im , 20, 20, 480, 280, $white);//填滿
//4.輸出最終影像或儲存最終影像
- header("content-type:image/png ");
- imagepng($im);
- //5.釋放畫布資源
- imagedestroy($im);
- ?>
-
複製程式碼
範例:
-
-
//imagepolygon 畫多邊形_畫三角形
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $white = imagecolorallocate($im, 25,
- $white = imagecolorallocate($im, 25, 255,5, 25 255);
//3.在畫布上畫圖像或文字
- $arr = array(
- 250,20,
- 60,240,
- 440,240
- 60,240,
- 440,240
- );
- imagepolygon($im, $arr, 3, $white);
//4.輸出最終影像或儲存最終影像
- header("content-type :image/png");
- imagepng($im);
- //5.釋放畫布資源
imagedestroy($im); ?>
複製程式碼
例子,畫一個3D餅狀圖
-
-
-
-
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300); //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $red = imagecolorallocate($im, 255, 0, 0);
- $grayred = imagecolorallocate( $im, 255, 100, 100);
- $green = imagecolorallocate($im, 0, 255, 0);
- $blue = imagecolorallocate($im, 0, 0, 255);
- $ gray = imagecolorallocate($im, 200, 200, 200);
- $white = imagecolorallocate($im, 255, 255, 255);
//3.圖像或文字
- for ($i=0; $i imagefilledarc($im, 250, 150 $i, 200, 200, 0, 70, $gray,IMG_ARC_PIE);
- imagefilledarc($im, 250, 150 $i, 200, 200, 70, 190, $grayred,IMG_ARC_PIE);
- imagefilledarc($im, 250, 150 $i, 200, 20,209 $green,IMG_ARC_PIE);
- imagefilledarc($im, 250, 150 $i, 200, 200, 270, 360, $blue,IMG_ARC_PIE); imagefilledarc($im, 250, 150, 200, 200, 70, 190, $red); imagefilledarc($im, 250, 150, 200, 200, 190, 270, $green,IMG_ARC_PIE);
- imagefilledarc($im, 250, 150, 200, 200, 270,700, 150, 200, 200, 270,360,70,030 /p>
//4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- // 5.釋放畫布資源
- imagedestroy($im);
- ?>
-
複製程式碼 例:
-
-
//寫文字:
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $red = imagecolorallocate($im, 255, 0, 00);
- $grayred = imagecolorallocate($im, 255, 100, 100);
- $green = imagecolorallocate($im, 0, 255, 0);
- $blue = imagecolorallocate( , 255);
- $gray = imagecolorallocate($im, 200, 200, 200);
- $white = imagecolorallocate($im, 255, 255, 255); imagecolorallocate($im, 255, 255, 255);
- //3.在畫布上畫圖像或文字
$str= "PHP is very much";
imagestring($im, 5, 260, 160, $str, $green);
- //4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- //5.釋放畫布資源
- imagedestroy($im);
- ?>
-
複製代碼
例子:
-
-
//寫單字:
-
//1.準備畫布
- $im>//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $red = imagecolorallocate($im, 255, 0, 000) ;
- $grayred = imagecolorallocate($im, 255, 100, 100);
- $green = imagecolorallocate($im, 0, 255, 0);
- $blue = imagecolorallocate 0, 255);
- $gray = imagecolorallocate($im, 200, 200, 200);
- $white = imagecolorallocate($im, 255, 255, 255); >//3.在畫布上畫圖像或文字
$str= "P";
imagechar($im, 5, 260, 160, $str, $green);
- //4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- / /5.釋放畫布資源
- imagedestroy($im);
- ?>
複製程式碼
例子,
-
-
-
//在圖片上寫字
-
//1.準備畫布
- $im = imagecreatetruecolor(500,300);
- //2.準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $red = imagecolorallocate($im, 255, 0, 000) ;
- $grayred = imagecolorallocate($im, 255, 100, 100);
- $green = imagecolorallocate($im, 0, 255, 0);
- $blue = imagecolorallocate 0, 255);
- $gray = imagecolorallocate($im, 200, 200, 200);
- $white = imagecolorallocate($im, 255, 255, 255); >//3.在畫布上畫圖像或文字
$str= "junzaivip";
- $file = "E:/PHP/fonts/SIMYOU.TTF";
- // $file = "fonts/SIMYOU.TTF";
imagettftext($im, 50, 0, 100, 200, $green, $file, $str);
//4.輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- //5.釋放畫布資源
- imagedestroy($im);
- ?>
-
複製程式碼
PHP 驗證碼的設計
-
-
//準備畫布
- $im = imagecreatetruecolor(100,50); //準備塗料
- $black = imagecolorallocate($im, 0, 0, 0);
- $gray = imagecolorallocate($im, 200, 200, 200);
//填入背景
- imagefill($im, 0, 0, $gray);
//文字座標
- $x = (100-4*20)/2 6 ;
- $y = (50-20)/2 20;
//在畫布上畫圖像或文字
//把三個陣列連結起來
- $strarr = array_merge(range(1, 9),range(a, z),range(A, Z));
//打亂陣列
- shuffle($strarr);
//array_slice:取陣列的前幾位
- //Join 將陣列變成字串,並且以第一個變數做分隔符號
- $str = join('',array_slice($strarr, 0,4));
$file = "E:/PHP/fonts/msyh.ttf";
- // $file = "fonts/msyh.ttf";
imagettftext($im, 20, 0, $x, $y, $black, $file, $str); p>
//輸出最終影像或儲存最終影像
- header("content-type:image/png");
- imagepng($im);
- //釋放畫布資源
- imagedestroy($im);
- ?>
-
-
-
複製程式碼 php驗證碼設計:這裡牽涉到兩個頁:index.php & reg.php
說明:
這個驗證碼版本只實現了驗證圖片的動態獲取
前台註冊頁面的驗證碼和產生圖片的驗證碼進行比較
驗證碼是由數字 小寫字母 大寫字母 隨機組成
index.php//實現使用者的註冊
|
|