中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中如何實現圖形處理

發布時間:2021-09-05 14:08:12 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關PHP中如何實現圖形處理的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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格式的圖像,代碼如下:

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

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

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

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

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

4.PHP生成驗證碼

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

<?php
session_start();
header("content-type:image/png");    //設置創建圖像的格式
$image_width=70;           //設置圖像寬度
$image_height=18;           //設置圖像高度
srand(microtime()*100000);        //設置隨機數的種子
for($i=0;$i<4;$i++){         //循環輸出一個4位的隨機數
  $new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks]=$new_number;  //將獲取的隨機數驗證碼寫入到SESSION變量中   

$num_image=imagecreate($image_width,$image_height); //創建一個畫布
imagecolorallocate($num_image,255,255,255);     //設置畫布的顏色
for($i=0;$i<strlen($_SESSION[check_checks]);$i++){ //循環讀取SESSION變量中的驗證碼
  $font=mt_rand(3,5);                //設置隨機的字體
  $x=mt_rand(1,8)+$image_width*$i/4;        //設置隨機字符所在位置的X坐標
  $y=mt_rand(1,$image_height/4);          //設置隨機字符所在位置的Y坐標
  $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));    //設置字符的顏色
  imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color);           //水平輸出字符
}
imagepng($num_image);         //生成PNG格式的圖像
imagedestroy($num_image);       //釋放圖像資源
?>

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

<?php
session_start();
if($_POST["Submit"]!=""){
$checks=$_POST["checks"];
if($checks==""){
echo "<script> alert('驗證碼不能為空');window.location.href='index.php';</script>";
}
if($checks==$_SESSION[check_checks]){
  echo "<script> alert('用戶登錄成功!');window.location.href='index.php';</script>";
}else{
  echo "<script> alert('您輸入的驗證碼不正確!');window.location.href='index.php';</script>";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>rand函數的應用</title>
<style type="text/css">
<!--
.STYLE1 {
  font-size: 12px;
  color: #FFFFFF;
  font-weight: bold;
}
.style2 {font-weight: bold; font-size: 12px;}
-->
</style>
</head>
<body>
<form name="form" method="post" action="">
 <table width="1003" border="0" cellspacing="0" cellpadding="0">
  <tr>
   <td width="168" height="169" background="images/index_01.gif">&nbsp;</td>
   <td width="685" background="images/index_02.gif">&nbsp;</td>
   <td width="150" background="images/index_03.gif">&nbsp;</td>
  </tr>
  <tr>
   <td width="168" height="311" background="images/index_04.gif">&nbsp;</td>
   <td background="images/index_05.gif"><table width="675" height="169" border="0" cellpadding="0" cellspacing="0">
    <tr>
     <td height="43" align="center" valign="baseline">&nbsp;</td>
     <td align="center" valign="middle">&nbsp;</td>
     <td align="center" valign="baseline">&nbsp;</td>
    </tr>
    <tr>
     <td width="382" height="24" align="center" valign="baseline">&nbsp;</td>
     <td width="207" height="24" valign="middle"><span class="style2">用戶名</span><span class="STYLE1">
      <input name="txt_user" id="txt_user"  size="10">
       </span></td>
     <td width="86" height="24" align="center" valign="baseline">&nbsp;</td>
    </tr>
    <tr>
     <td height="24" align="center" valign="baseline">&nbsp;</td>
     <td height="24" valign="middle"><span class="style2">密碼</span><span class="STYLE1">
     <input name="txt_pwd" type="password" id="txt_pwd"  size="10">
     </span></td>
     <td height="24" align="center" valign="baseline">&nbsp;</td>
    </tr>
    <tr>
     <td height="24" align="center" valign="baseline">&nbsp;</td>
     <td height="24" valign="middle"><span class="style2">驗證碼</span><span class="STYLE1">
     <input name="checks" size="6" >
     <img src="checks.php" width="70" height="18" border="0" align="bottom"></span>&nbsp;&nbsp;</td>
     <td height="24" align="center" valign="baseline">&nbsp;</td>
    </tr>
    <tr>
     <td height="40" align="center" valign="baseline">&nbsp;</td>
     <td align="center" valign="baseline">&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="Submit" value="登錄"></td>
     <td align="center" valign="baseline">&nbsp;</td>
    </tr>
   </table></td>
   <td background="images/index_06.gif">&nbsp;</td>
  </tr>
  <tr>
   <td height="100">&nbsp;</td>
   <td>&nbsp;</td>
   <td>&nbsp;</td>
  </tr>
 </table>
</form>
</body>
</html>

感謝各位的閱讀!關于“PHP中如何實現圖形處理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

特克斯县| 和林格尔县| 徐州市| 清苑县| 平定县| 海淀区| 平陆县| 田阳县| 开封市| 扎赉特旗| 托克逊县| 古丈县| 中超| 鹤峰县| 额敏县| 山东省| 丰原市| 阜宁县| 曲靖市| 湟源县| 贡山| 息烽县| 克拉玛依市| 武冈市| 同仁县| 乐都县| 盐池县| 招远市| 沁源县| 萨嘎县| 祁东县| 威海市| 任丘市| 宜章县| 驻马店市| 阿拉善盟| 普定县| 精河县| 滁州市| 南陵县| 日土县|