麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

日常整理PHP中簡單的圖形處理(經典)

2024-05-04 23:39:49
字體:
來源:轉載
供稿:網友

本篇文章是小編日常整理的php圖形處理,如何使用GD2函數在照片上添加文字,使用GD2函數創建一個4位的驗證碼。對本文內容感興趣的朋友可以了解了解

1.加載GD庫

GD庫是一個開放的動態創建圖像、源代碼公開的函數庫,可以從官方網站http://www.boutell.com/gd處下載。目前,GD庫支持GIF、PNG、JPEG、WBMP和XBM等多種圖像格式,用于對圖像的處理。

GD庫在PHP 5中是默認安裝的,但要激活GD庫,必須修改php.ini文件。將該文件中的“;extension=php_gd2.dll”選項前的分號“;”刪除,保存修改后的文件并重新啟動Apache服務器即可生效。

2.創建一個簡單的圖像

使用GD2函數庫可以實現各種圖形圖像的處理。創建畫布是使用GD2函數庫來創建圖像的第一步,無論創建什么樣的圖像,首先都需要創建一個畫布,其他操作都將在這個畫布上完成。在GD2函數庫中創建畫布,可以通過imagecreate()函數實現。

使用imagecreate()函數創建一個寬度為200像素,高度為60像素的畫布,并設置畫布顏色RGB(225,66,159),最后輸出一個GIF格式的圖像,代碼如下:

 

 
  1. <?php 
  2. $im = imagecreate(200,60); //創建一個畫布 
  3. $white = imagecolorallocate($im, 225,66,159); //設置畫布的背景顏色為淺綠色 
  4. imagegif($im); //輸出圖像 
  5. ?> 

3.使用GD2函數在照片上添加文字

PHP中的GD庫支持中文,但必須要以UTF-8格式的參數來進行傳遞,如果使用imageString()函數直接繪制中文字符串就會顯示亂碼,這是因為GD2對中文只能接收UTF-8編碼格式,并且默認使用英文字體,所以要輸出中文字符串,必須對中文字符串進行轉碼,并設置中文字符使用的字體。否則,輸出的只能是亂碼。

使用imageTTFText()函數將文字“這是一個測試”輸出到圖像中,代碼如下:

 

 
  1. <?php 
  2. header("content-type:image/jpeg"); //定義輸出為圖像類型 
  3. $im=imagecreatefromjpeg("images/photo.jpg"); //載入照片 
  4. $textcolor=imagecolorallocate($im,56,73,136);//設置字體顏色為藍色,值為RGB顏色值 
  5. $fnt="c:/windows/fonts/simhei.ttf"//定義字體 
  6. $motto=iconv("gb2312","utf-8","這是一個測試"); //定義輸出字體串 
  7. imageTTFText($im,220,0,480,340,$textcolor,$fnt,$motto); //寫TTF文字到圖中 
  8. imagejpeg($im); //建立JPEG圖形 
  9. imagedestroy($im); //結束圖形,釋放內存空間 
  10. ?> 

4.PHP生成驗證碼

創建一個checks.php文件在文件中使用GD2函數創建一個4位的驗證碼,并將生成的驗證碼保存到session中:

 

 
  1. <?php 
  2. session_start(); 
  3. header("content-type:image/png"); //設置創建圖像的格式 
  4. $image_width=70; //設置圖像寬度 
  5. $image_height=18; //設置圖像高度 
  6. srand(microtime()*100000); //設置隨機數的種子 
  7. for($i=0;$i<4;$i++){ //循環輸出一個4位的隨機數 
  8. $new_number.=dechex(rand(0,15)); 
  9. $_SESSION[check_checks]=$new_number; //將獲取的隨機數驗證碼寫入到SESSION變量中  
  10.  
  11. $num_image=imagecreate($image_width,$image_height); //創建一個畫布 
  12. imagecolorallocate($num_image,255,255,255); //設置畫布的顏色 
  13. for($i=0;$i<strlen($_SESSION[check_checks]);$i++){ //循環讀取SESSION變量中的驗證碼 
  14. $font=mt_rand(3,5); //設置隨機的字體 
  15. $x=mt_rand(1,8)+$image_width*$i/4; //設置隨機字符所在位置的X坐標 
  16. $y=mt_rand(1,$image_height/4); //設置隨機字符所在位置的Y坐標 
  17. $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)); //設置字符的顏色 
  18. imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color); //水平輸出字符 
  19. imagepng($num_image); //生成PNG格式的圖像 
  20. imagedestroy($num_image); //釋放圖像資源 
  21. ?> 

創建一個用戶登錄的表單并調用checks.php在表單中輸出圖像的內容:

 

 
  1. <?php 
  2. session_start(); 
  3. if($_POST["Submit"]!=""){ 
  4. $checks=$_POST["checks"]; 
  5. if($checks==""){ 
  6. echo "<script> alert('驗證碼不能為空');window.location.href='index.php';</script>"
  7. if($checks==$_SESSION[check_checks]){ 
  8. echo "<script> alert('用戶登錄成功!');window.location.href='index.php';</script>"
  9. }else
  10. echo "<script> alert('您輸入的驗證碼不正確!');window.location.href='index.php';</script>"
  11. ?> 
  12. <html> 
  13. <head> 
  14. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  15. <title>rand函數的應用</title> 
  16. <style type="text/css"
  17. <!-- 
  18. .STYLE1 { 
  19. font-size: 12px; 
  20. color: #FFFFFF; 
  21. font-weight: bold; 
  22. .style2 {font-weight: bold; font-size: 12px;} 
  23. --> 
  24. </style> 
  25. </head> 
  26. <body> 
  27. <form name="form" method="post" action=""
  28. <table width="1003" border="0" cellspacing="0" cellpadding="0"
  29. <tr> 
  30. <td width="168" height="169" background="images/index_01.gif"></td> 
  31. <td width="685" background="images/index_02.gif"></td> 
  32. <td width="150" background="images/index_03.gif"></td> 
  33. </tr> 
  34. <tr> 
  35. <td width="168" height="311" background="images/index_04.gif"></td> 
  36. <td background="images/index_05.gif"><table width="675" height="169" border="0" cellpadding="0" cellspacing="0"
  37. <tr> 
  38. <td height="43" align="center" valign="baseline"></td> 
  39. <td align="center" valign="middle"></td> 
  40. <td align="center" valign="baseline"></td> 
  41. </tr> 
  42. <tr> 
  43. <td width="382" height="24" align="center" valign="baseline"></td> 
  44. <td width="207" height="24" valign="middle"><span class="style2">用戶名</span><span class="STYLE1"
  45. <input name="txt_user" id="txt_user" style="height:20px " size="10"
  46. </span></td> 
  47. <td width="86" height="24" align="center" valign="baseline"></td> 
  48. </tr> 
  49. <tr> 
  50. <td height="24" align="center" valign="baseline"></td> 
  51. <td height="24" valign="middle"><span class="style2">密碼</span><span class="STYLE1"
  52. <input name="txt_pwd" type="password" id="txt_pwd" style="FONT-SIZE: 9pt; height:20px" size="10"
  53. </span></td> 
  54. <td height="24" align="center" valign="baseline"></td> 
  55. </tr> 
  56. <tr> 
  57. <td height="24" align="center" valign="baseline"></td> 
  58. <td height="24" valign="middle"><span class="style2">驗證碼</span><span class="STYLE1"
  59. <input name="checks" size="6" style="height:20px "
  60. <img src="checks.php" width="70" height="18" border="0" align="bottom"></span></td> 
  61. <td height="24" align="center" valign="baseline"></td> 
  62. </tr> 
  63. <tr> 
  64. <td height="40" align="center" valign="baseline"></td> 
  65. <td align="center" valign="baseline"><input type="submit" name="Submit" value="登錄"></td> 
  66. <td align="center" valign="baseline"></td> 
  67. </tr> 
  68. </table></td> 
  69. <td background="images/index_06.gif"></td> 
  70. </tr> 
  71. <tr> 
  72. <td height="100"></td> 
  73. <td></td> 
  74. <td></td> 
  75. </tr> 
  76. </table> 
  77. </form> 
  78. </body> 
  79. </html> 

以上內容是小編給大家分享的有關php中簡單的圖形處理,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人精品欧美一级乱黄 | 欧美精品一区自拍a毛片在线视频 | 欧美一级一区二区三区 | 成人毛片免费看 | 精品一区在线视频 | 天天色宗合 | 在线观看免费污视频 | 美女黄网站免费观看 | 黄色免费不卡视频 | 毛片电影网址 | 日本aaaa片毛片免费观蜜桃 | 欧美特黄一级高清免费的香蕉 | 国产精品99精品 | 九色在线78m | 免费国产人成网站 | 国产精品视频在线观看免费 | 久久久中文 | 特级无码毛片免费视频尤物 | 黄色片视频在线观看 | 久久久久久久久久久久久久久久久久 | 精品在线观看一区二区三区 | 免费在线观看成人网 | 国产成人精品自拍视频 | 久久久久久久久成人 | 久久精品爱 | 噜噜噜躁狠狠躁狠狠精品视频 | 91精品国产日韩91久久久久久360 | 国产性tv国产精品 | 激情小说图 | 综合国产一区 | 狠狠干天天操 | 特片网久久 | 国产精品久久久久国产精品三级 | 羞羞漫画无遮挡观看 | 久久久久亚洲国产精品 | 91在线视频福利 | 色淫网站免费视频 | 欧美一级特黄aaaaaaa什 | 插插操 | 久久精品欧美一区 | 久久青草影院 |