程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP圖形操作之生成圖像驗證碼,php圖形圖像驗證碼

PHP圖形操作之生成圖像驗證碼,php圖形圖像驗證碼

編輯:關於PHP編程

PHP圖形操作之生成圖像驗證碼,php圖形圖像驗證碼


簡單的驗證碼其實就是在圖片中輸出了幾個字符,通過imagestring函數就能實現。

但是在處理上,為了使驗證碼更加的安全,防止其他程序自動識別,因此常常需要對驗證碼進行一些干擾處理,通常會采用繪制一些噪點,干擾線段,對輸出的字符進行傾斜、扭曲等操作。

可以使用imagesetpixel繪制點來實現噪點干擾,但是只繪制一個點的作用不大,因此這裡常常會使用循環進行隨機繪制。


例子:

<?php
$img = imagecreatetruecolor(100, 40);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img,0,0,$white);
//生成隨機的驗證碼
$code = '';
for($i = 0; $i < 4; $i++) {  //4位數的驗證碼
$code .= rand(0, 9);
}
imagestring($img, 5, 10, 10, $code, $black);
//加入噪點干擾
for($i=0;$i<50;$i++) {
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black);  //imagesetpixel — 畫一個單一像素,語法: bool imagesetpixel ( resource $image , int $x , int $y , int $color )
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
//輸出驗證碼
header("content-type: image/png");
imagepng($img);  //以 PNG 格式將圖像輸出到浏覽器或文件
imagedestroy($img);  //圖像處理完成後,使用 imagedestroy() 指令銷毀圖像資源以釋放內存,雖然該函數不是必須的,但使用它是一個好習慣。

?>




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved