當前位置:首頁 » 編程語言 » 圖像處理php

圖像處理php

發布時間: 2022-08-11 10:16:32

php中圖像處理怎麼寫一個折線統計圖

在PHP中,有一些簡單的圖像函數是可以直接使用的,但大多數要處理的圖像,都需要在編譯PHP時加上GD庫。除了安裝GD庫之外,在PHP中還可能需要其他的庫,這可以根據需要支持哪些圖像格式而定。GD庫可以網上免費下載,不同的GD版本支持的圖像格式不完全一樣,最新的GD庫版本支持GIF、JPEG、PNG、WBMP、XBM等格式的圖像文件,此外還支持一些如FreeType、Type 1等字體庫。通過GD庫中的函數可以完成各種點、線、幾何圖形、文本及顏色的操作和處理,也可以創建或讀取多種格式的圖像文件。
在PHP中,通過GD庫處理圖像的操作,都是先在內存中處理,操作完成以後再以文件流的方式,輸出到瀏覽器或保存在伺服器的磁碟中。創建一個圖像應該完成如下所示的4個基本步驟。
(1)創建畫布:所有的繪圖設計都需要在一個背景圖片上完成,而畫布實際上就是在內存中開辟的一塊臨時區域,用於存儲圖像的信息。以後的圖像操作都將基於這個背景畫布,該畫布的管理就類似於我們在畫畫時使用的畫布。
(2)繪制圖像:畫布創建完成以後,就可以通過這個畫布資源,使用各種畫像函數設置圖像的顏色、填充畫布、畫點、線段、各種幾何圖形,以及向圖像中添加文本等。
(3)輸出圖像:完成整個圖像的繪制以後,需要將圖像以某種格式保存到伺服器指定的文件中,或將圖像直接輸出到瀏覽器上顯示給用戶。但在圖像輸出之前,一定要使用header()函數發送Content-type通知瀏覽器,這次發送的是圖片不是文本。
(4)釋放資源:圖像被輸出以後,畫布中的內容也不再有用。出於節約系統資源的考慮,需要及時清除畫布佔用的所有內存資源。
php中用GD繪制折線圖,代碼如下:
Class Chart{
private $image; // 定義圖像
private $title; // 定義標題
private $ydata; // 定義Y軸數據
private $xdata; // 定義X軸數據
private $seriesName; // 定義每個系列數據的名稱
private $color; // 定義條形圖顏色
private $bgcolor; // 定義圖片背景顏色
private $width; // 定義圖片的寬
private $height; // 定義圖片的長
/*
* 構造函數
* String title 圖片標題
* Array xdata 索引數組,X軸數據
* Array ydata 索引數組,數字數組,Y軸數據
* Array series_name 索引數組,數據系列名稱
*/
function __construct($title,$xdata,$ydata,$seriesName) {
$this->title = $title;
$this->xdata = $xdata;
$this->ydata = $ydata;
$this->seriesName = $seriesName;
$this->color = array('#DC', '#B', '#EDB', '#DDDF', '#CBE', '#E', '#FF', '#FFF', '#AFC');
}
/*
* 公有方法,設置條形圖的顏色
* Array color 顏色數組,元素取值為'#DC'這種形式
*/
function setBarColor($color){
$this->color = $color;
}
/*
* 繪制折線圖
*/
public function paintLineChart() {
$ydataNum = $this->arrayNum($this->ydata); // 取得數據分組的個數
$max = $this->arrayMax($this->ydata); // 取得所有呈現數據的最大值
$max = ($max > )? $max : ;
$multi = $max/; // 如果最大數據是大於的則進行縮小處理
$barHeightMulti = .; // 條形高縮放的比例
$lineWidth = ;
$chartLeft = (+strlen($max))*; // 設置圖片左邊的margin
$lineY = ; // 初始化條形圖的Y的坐標
// 設置圖片的寬、高
//$this->width = $lineWidth*count($this->xdata) + $chartLeft - $lineWidth/.;
$margin = ; // 小矩形描述右邊margin
$recWidth = ; // 小矩形的寬
$recHeight = ; // 小矩形的高
$space = ; // 小矩形與條形圖的間距
$tmpWidth = ;
// 設置圖片的寬、高
$lineChartWidth = $lineWidth*count($this->xdata) + $chartLeft - $lineWidth/. ;
// 兩個系列數據以上的加上小矩形的寬
if($ydataNum > ) {
$tmpWidth = $this->arrayLengthMax($this->seriesName)**/ + $space + $recWidth + + $margin;
}
$this->width = $lineChartWidth + $tmpWidth;
$this->height = ;
$this->image = imagecreatetruecolor($this->width ,$this->height); // 准備畫布
$this->bgcolor = imagecolorallocate($this->image,,,); // 圖片的背景顏色
// 設置條形圖的顏色
$color = array();
foreach($this->color as $col) {
$col = substr($col,,strlen($col)-);
$red = hexdec(substr($col,,));
$green = hexdec(substr($col,,));
$blue = hexdec(substr($col,,));
$color[] = imagecolorallocate($this->image ,$red, $green, $blue);
}
// 設置線段的顏色、字體的顏色、字體的路徑
$lineColor = imagecolorallocate($this->image ,xcc,xcc,xcc);
$fontColor = imagecolorallocate($this->image, x,xf,xf);
$fontPath = 'font/simsun.ttc';
imagefill($this->image,,,$this->bgcolor); // 繪畫背景
// 繪畫圖的分短線與左右邊線
for($i = ; $i < ; $i++ ) {
imageline($this->image,$chartLeft-,$lineY-$barHeightMulti*$max//$multi*$i,$lineChartWidth,$lineY-$barHeightMulti*$max//$multi*$i,$lineColor);
imagestring($this->image,,,$lineY-$barHeightMulti*$max//$multi*$i-,floor($max/*$i),$fontColor);
}
imageline($this->image,$chartLeft-,,$chartLeft-,$lineY,$lineColor);
imageline($this->image,$lineChartWidth-,,$lineChartWidth-,$lineY,$lineColor);
$style = array($lineColor,$lineColor,$lineColor,$lineColor,$lineColor,$this->bgcolor,$this->bgcolor,$this->bgcolor,$this->bgcolor,$this->bgcolor);
imagesetstyle($this->image,$style);
// 繪制折線圖的分隔線(虛線)
foreach($this->xdata as $key => $val) {
$lineX = $chartLeft + + $lineWidth*$key;
imageline($this->image,$lineX,,$lineX,$lineY,IMG_COLOR_STYLED);
}
// 繪畫圖的折線
foreach($this->ydata as $key => $val) {
if($ydataNum == ) {
// 一個系列數據時
if($key == count($this->ydata) - ) break;
$lineX = $chartLeft + + $lineWidth*$key;
$lineY = $lineY-$barHeightMulti*($this->ydata[$key+])/$multi;
// 畫折線
if($key == count($this->ydata) - ) {
imagefilledellipse($this->image,$lineX+$lineWidth,$lineY,,,$color[]);
}
imageline($this->image,$lineX,$lineY-$barHeightMulti*$val/$multi,$lineX+$lineWidth,$lineY,$color[]);
imagefilledellipse($this->image,$lineX,$lineY-$barHeightMulti*$val/$multi,,,$color[]);
}elseif($ydataNum > ) {
// 多個系列的數據時
foreach($val as $ckey => $cval) {
if($ckey == count($val) - ) break;
$lineX = $chartLeft + + $lineWidth*$ckey;
$lineY = $lineY-$barHeightMulti*($val[$ckey+])/$multi;
// 畫折線
if($ckey == count($val) - ) {
imagefilledellipse($this->image,$lineX+$lineWidth,$lineY,,,$color[$key%count($this->color)]);
}
imageline($this->image,$lineX,$lineY-$barHeightMulti*$cval/$multi,$lineX+$lineWidth,$lineY,$color[$key%count($this->color)]);
imagefilledellipse($this->image,$lineX,$lineY-$barHeightMulti*$cval/$multi,,,$color[$key%count($this->color)]);
}
}
}
// 繪畫條形圖的x坐標的值
foreach($this->xdata as $key => $val) {
$lineX = $chartLeft + $lineWidth*$key + $lineWidth/ - ;
imagettftext($this->image,,-,$lineX,$lineY+,$fontColor,$fontPath,$this->xdata[$key]);
}
// 兩個系列數據以上時繪制小矩形及之後文字說明
if($ydataNum > ) {
$x = $lineChartWidth + $space;
$y = ;
foreach($this->seriesName as $key => $val) {
imagefilledrectangle($this->image,$x,$y,$x+$recWidth,$y+$recHeight,$color[$key%count($this->color)]);
imagettftext($this->image,,,$x+$recWidth+,$y+$recHeight-,$fontColor,$fontPath,$this->seriesName[$key]);
$y += $recHeight + ;
}
}
// 繪畫標題
$titleStart = ($this->width - .*strlen($this->title))/;
imagettftext($this->image,,,$titleStart,,$fontColor,$fontPath,$this->title);
// 輸出圖片
header("Content-Type:image/png");
imagepng ( $this->image );
}
/*
* 私有方法,當數組為二元數組時,統計數組的長度
* Array arr 要做統計的數組
*/
private function arrayNum($arr) {
$num = ;
if(is_array($arr)) {
$num++;
for($i = ; $i < count($arr); $i++){
if(is_array($arr[$i])) {
$num = count($arr);
break;
}
}
}
return $num;
}
/*
* 私有方法,計算數組的深度
* Array arr 數組
*/
private function arrayDepth($arr) {
$num = ;
if(is_array($arr)) {
$num++;
for($i = ; $i < count($arr); $i++){
if(is_array($arr[$i])) {
$num += $this->arrayDepth($arr[$i]);
break;
}
}
}
return $num;
}
/*
* 私有方法,找到一組中的最大值
* Array arr 數字數組
*/
private function arrayMax($arr) {
$depth = $this->arrayDepth($arr);
$max = ;
if($depth == ) {
rsort($arr);
$max = $arr[];
}elseif($depth > ) {
foreach($arr as $val) {
if(is_array($val)) {
if($this->arrayMax($val) > $max) {
$max = $this->arrayMax($val);
}
}else{
if($val > $max){
$max = $val;
}
}
}
}
return $max;
}
/*
* 私有方法,求數組的平均值
* Array arr 數字數組
*/
function arrayAver($arr) {
$aver = array();
foreach($arr as $val) {
if(is_array($val)) {
$aver = array_merge($aver,$val);
}else{
$aver[] = $val;
}
}
return array_sum($aver)/count($aver);
}
/*
* 私有方法,求數組中元素長度最大的值
* Array arr 字元串數組,必須是漢字
*/
private function arrayLengthMax($arr) {
$length = ;
foreach($arr as $val) {
$length = strlen($val) > $length ? strlen($val) : $length;
}
return $length/;
}
// 析構函數
function __destruct(){
imagedestroy($this->image);
}
}
測試代碼如下:
$xdata = array('測試一','測試二','測試三','測試四','測試五','測試六','測試七','測試八','測試九');
$ydata = array(array(,,,,,,,,),array(,,,,,,,,));
$color = array();
$seriesName = array("七月","八月");
$title = "測試數據";
$Img = new Chart($title,$xdata,$ydata,$seriesName);
$Img->paintLineChart();
效果圖如下:
到此代碼結束。
下面給大家介紹php中GD庫的一些簡單使用
今天了解了一些GD庫的簡單使用,現在稍微做一下總結!
GD庫是什麼?,graphic device,圖像工具庫,gd庫是php處理圖形的擴展庫,gd庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。 在網站上 GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。
php並不局限於輸出HTML文本。php通過使用GD擴展庫還能用來動態輸出圖像,例如文字按鈕、驗證碼、數據統計圖等。哈可以輕松地編輯圖像,力圖處理縮略圖和為圖片添加水印等,具有強大的圖像處理能力。
首先我們來說下GD庫,繪制個簡單圖形的一些步驟:
1、首先是創建畫布,此處我們利用imagecreatetruecolor函數,也可以利用imagecreate,區別在於前者創建了一個真彩圖像,後者創建了一個基於調色板的圖像
$img=imagecreatetruecolor(100,100),其中有兩個參數分別對應,我們創建的圖像的寬和高
2、設置一些必要的"染料盒"
其實就是定義一些之後會用到的填充顏色,此處我們統一定義在這個位置,此處我們利用imagecolorallocate函數
$white=imagecolorallocate($img,0xFF,0xFF,0xFF)或者可以使用RGB的顏色命名方式 如$white=imagecolorallocate($img,255,255,255);
$gray = imagecolorallocate($img, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($img, 0x90, 0x90, 0x90);
$navy = imagecolorallocate($img, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($img, 0x00, 0x00, 0x50);
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);
$darkred = imagecolorallocate($img, 0x90, 0x00, 0x00);
$black=imagecolorallocate($img,0x00,0x00,0x00);
此處我們定義多一些所需要的顏色
3、填充區域顏色,可以簡單的理解為填充圖片的背景顏色,利用imagefill函數
imagefill($img,0,0,$white),此處的0 0表示從坐標x y處開始填充背景色
4、繪制圖形,例如繪制餅狀圖,所需要的是imagefilledarc函數
imagefilledarc()的參數相對來說較多,形如imagefilledarc($img,50,$i,100,50,0,45,$red,IMG_ARC_PIE);
其中分別表示以red顏色字img圖像上繪制一個以50,$i為起點,以0 45角度這個范圍內繪制弧線
5、期間我們還可以添加一些說明問題,比如水平的添加一個字元串,利用 imagestring($img,1,20,40,"hello,world!",$red),表示在img圖片中以20 40為坐標,寫上一個紅色的hello,world!字樣
6、就是講圖像輸出
首先要告之瀏覽器要以何種圖片格式輸出,例如以png輸出,則使用header("Content-type:image/png");
其次 將圖片輸出到瀏覽器中,imagepng($img);
最後,銷毀圖片,即釋放該圖片存儲所佔用的內存 imagedestroy(img);,

❷ php圖像處理 php圖像處理中以像素為單位生成畫布,進而生成圖片都是以

圖像尺寸本來就是以像素為單位的,具體的mm cm尺寸只在列印時才有用。你只需要根據dpi和尺寸換算出像素單位的尺寸,生成出來就行了

❸ PHP圖像處理

gif這種動態圖片暫時沒有方便的方法處理,如果是jpg等很好處理
//來自文件的圖片做背景圖
$im=imagecreatefromjpeg('a.');
//給創建的圖形設制背景色,第一次調用imagecolorallocate是設定背景色
$backgroundColor = imagecolorallocate($im, 255, 255, 255);
//設定圖形上寫入的文本的顏色
$textColor = imagecolorallocate($im, 255, 0, 0);
//將數字寫入到所生成的圖片的指定位置,imagestring多用於寫入數字與簡單ascii字元,其第2個參數的含義是字體,第三四個參數的意思是位置
//imagestring($im, 1, 5, 5, '12345' , $text_color);
//對寫入的漢字的字元集進行轉換,如果本身就是用utf-8進行的編碼則無需要轉換了
$content=iconv('utf-8','gb2312',"測試用www.phpcheng.com");

❹ PHP圖像處理的

<?php
//圖片的等比縮放
//因為PHP只能對資源進行操作,所以要對需要進行縮放的圖片進行拷貝,創建為新的資源
$src=imagecreatefromjpeg('a.jpg');
//取得源圖片的寬度和高度
$size_src=getimagesize('a.jpg');
$w=$size_src['0'];
$h=$size_src['1'];
//指定縮放出來的最大的寬度(也有可能是高度)
$max=100;
//根據最大值,算出另一個邊的長度,得到縮放後的圖片寬度和高度
if($w>$h){
$w=$max;
$h=$h*($max/$size_src['0']);
}else{
$h=$max;
$w=$w*($max/$size_src['1']);
}
//聲明一個$w寬,$h高的真彩圖片資源
$image=imagecreatetruecolor($w,$h);
//關鍵函數,參數(目標資源,源,目標資源的開始坐標x,y,源資源的開始坐標x,y,目標資源的寬高w,h,源資源的寬高w,h)
imageresampled($image,$src,0,0,0,0,$w,$h,$size_src['0'],$size_src['1']);
//告訴瀏覽器以圖片形式解析
header('content-type:image/png');
imagepng($image);
//銷毀資源
imagedestroy($image);

❺ PHP圖像處理函數有哪些

我在網上找了半天,發現這些都無法實現對它的認識,於是我偶然間找到了相關的資料方面的書;

那就是PHP 手冊,表在網上找這些沒用的東西了,全是些皮毛介紹,誤人子弟;

請點擊這里:網頁鏈接下載相關的手冊,或者在網上查找PHP相關的中文版的手冊;

又全面又仔細,不需要在網上亂查了,根本就是浪費時間,誤入歧途.

例子 1. 用 PHP 創建 PNG 圖像

<?phpheader("Content-type: image/png");

$string = $_GET['text'];

$im= imagecreatefrompng("images/button1.png");

$orange = imagecolorallocate($im,
220, 210, 60);

$px= (imagesx($im) - 7.5
* strlen($string)) /
2;

imagestring($im, 3, $px, 9, $string, $orange);

imagepng($im);

imagedestroy($im);

?>

本例應該在一個具有類似:<img
src="button.php?text=text"> 標簽的頁面中被調用。上述的 button.php 腳本會取得 "text"
字元串將其覆蓋在原圖上(本例中的
"images/button1.png")並輸出作為結果的圖像。用此方法可以很方便地修改按鈕上的文字從而避免了每次都要新畫一個按鈕的圖像。用此方法就可以動態生成了。

  • 目錄

  • exif_imagetype--判斷一個圖像的類型

  • exif_read_data-- 從 JPEG 或 TIFF 文件中讀取 EXIF 頭信息,這樣就可以讀取數碼相機產生的元數據

  • exif_thumbnail--取得嵌入在 TIFF 或
    JPEG 圖像中的縮略圖

  • gd_info--取得當前安裝的 GD 庫的信息

  • getimagesize--取得圖像大小

  • image_type_to_mime_type-- 取得
    getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的圖像類型的 MIME 類型

  • image2wbmp--以 WBMP 格式將圖像輸出到瀏覽器或文件

  • imagealphablending--設定圖像的混色模式

  • imageantialias--是否使用 antialias
    功能

  • imagearc--畫橢圓弧

  • imagechar--水平地畫一個字元

  • imagecharup--垂直地畫一個字元

  • imagecolorallocate--為一幅圖像分配顏色

  • imagecolorallocatealpha--為一幅圖像分配顏色
    + alpha

  • imagecolorat--取得某像素的顏色索引值

  • imagecolorclosest--取得與指定的顏色最接近的顏色的索引值

  • imagecolorclosestalpha--取得與指定的顏色
    + alpha 最接近的顏色

  • imagecolorclosesthwb--
    取得與給定顏色最接近的色度的黑白色的索引

  • imagecolordeallocate--取消圖像顏色的分配

  • imagecolorexact--取得指定顏色的索引值

  • imagecolorexactalpha--取得指定的顏色 +
    alpha 的索引值

  • imagecolormatch--
    使一個圖像中調色板版本的顏色與真彩色版本更能匹配

  • imagecolorresolve--
    取得指定顏色的索引值或有可能得到的最接近的替代值

  • imagecolorresolvealpha--
    取得指定顏色 + alpha 的索引值或有可能得到的最接近的替代值

  • imagecolorset--給指定調色板索引設定顏色

  • imagecolorsforindex--取得某索引的顏色

  • imagecolorstotal--取得一幅圖像的調色板中顏色的數目

  • imagecolortransparent--將某個顏色定義為透明色

  • image--拷貝圖像的一部分

  • imagemerge--拷貝並合並圖像的一部分

  • imagemergegray--用灰度拷貝並合並圖像的一部分

  • imageresampled--重采樣拷貝部分圖像並調整大小

  • imageresized--拷貝部分圖像並調整大小

  • imagecreate--新建一個基於調色板的圖像

  • imagecreatefromgd2--從 GD2
    文件或 URL 新建一圖像

  • imagecreatefromgd2part--從給定的
    GD2 文件或 URL 中的部分新建一圖像

  • imagecreatefromgd--從 GD 文件或
    URL 新建一圖像

  • imagecreatefromgif--從 GIF
    文件或 URL 新建一圖像

  • imagecreatefromjpeg--從
    JPEG 文件或 URL 新建一圖像

  • imagecreatefrompng--從 PNG
    文件或 URL 新建一圖像

  • imagecreatefromstring--從字元串中的圖像流新建一圖像

  • imagecreatefromwbmp--從
    WBMP 文件或 URL 新建一圖像

  • imagecreatefromxbm--從 XBM
    文件或 URL 新建一圖像

  • imagecreatefromxpm--從 XPM
    文件或 URL 新建一圖像

  • imagecreatetruecolor--新建一個真彩色圖像

  • imagedashedline--畫一虛線

  • imagedestroy--銷毀一圖像

  • imageellipse--畫一個橢圓

  • imagefill--區域填充

  • imagefilledarc--畫一橢圓弧且填充

  • imagefilledellipse--畫一橢圓並填充

  • imagefilledpolygon--畫一多邊形並填充

  • imagefilledrectangle--畫一矩形並填充

  • imagefilltoborder--區域填充到指定顏色的邊界為止

  • imagefontheight--取得字體高度

  • imagefontwidth--取得字體寬度

  • imageftbbox--取得使用了 FreeType 2
    字體的文本的范圍

  • imagefttext--使用 FreeType 2
    字體將文本寫入圖像

  • imagegammacorrect--對 GD 圖像應用
    gamma 修正

  • imagegd2--輸出 GD2 圖像

  • imagegd--將 GD 圖像輸出到瀏覽器或文件

  • imagegif--以 GIF 格式將圖像輸出到瀏覽器或文件

  • imageinterlace--激活或禁止隔行掃描

  • imageistruecolor--檢查圖像是否為真彩色圖像

  • imagejpeg--以 JPEG 格式將圖像輸出到瀏覽器或文件

  • imagelayereffect-- Set the
    alpha blending flag to use the bundled libgd layering effects

  • imageline--畫一條直線

  • imageloadfont--載入一新字體

  • imagepalette--將調色板從一幅圖像拷貝到另一幅

  • imagepng--以 PNG 格式將圖像輸出到瀏覽器或文件

  • imagepolygon--畫一個多邊形

  • imagepsbbox--取得使用 PostScript Type1
    字體的文本的范圍

  • imagepsfont--
    拷貝一個已載入的字體以備更改

  • imagepsencodefont--改變字體中的字元編碼矢量

  • imagepsextendfont--擴充或壓縮字體

  • imagepsfreefont--釋放一個
    PostScript Type 1 字體所佔用的內存

  • imagepsloadfont--從文件中載入一個
    PostScript Type 1 字體

  • imagepsslantfont--傾斜某字體

  • imagepstext--用 PostScript Type1
    字體把文本字元串畫在圖像上

  • imagerectangle--畫一個矩形

  • imagerotate--用給定角度旋轉圖像

  • imagesavealpha-- 設置標記以在保存 PNG
    圖像時保存完整的 alpha 通道信息(與單一透明色相反)

  • imagesetbrush--設定畫線用的畫筆圖像

  • imagesetpixel--畫一個單一像素

  • imagesetstyle--設定畫線的風格

  • imagesetthickness--設定畫線的寬度

  • imagesettile--設定用於填充的貼圖

  • imagestring--水平地畫一行字元串

  • imagestringup--垂直地畫一行字元串

  • imagesx--取得圖像寬度

  • imagesy--取得圖像高度

  • imagetruecolortopalette--將真彩色圖像轉換為調色板圖像

  • imagettfbbox--取得使用 TrueType
    字體的文本的范圍

  • imagettftext--用 TrueType
    字體向圖像寫入文本

  • imagetypes--返回當前 PHP 版本所支持的圖像類型

  • imagewbmp--以 WBMP 格式將圖像輸出到瀏覽器或文件

  • iptcembed--將二進制 IPTC 數據嵌入到一幅 JPEG
    圖像中

  • iptcparse-- 將二進制 IPTC http://www.iptc.org/ 塊解析為單個標記

  • jpeg2wbmp--將 JPEG 圖像文件轉換為 WBMP 圖像文件

  • png2wbmp--將 PNG 圖像文件轉換為 WBMP 圖像文件

  • read_exif_data--exif_read_data() 的別名

❻ 聽說php能處理圖像,請問該如何處理呢

<?php
session_start();
srand((double)microtime*1000000);
$im=imagecreate(100,30);
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
$gray=imagecolorallocate($im,220,240,240);
imagefill($im,0,0,$gray);
$_SESSION["autonum"]="";
$mt_str = "";
for($i=0;$i<4;$i++){
$str=mt_rand(1,3);
$size=mt_rand(5,6);
$authnum=$mt_str{mt_rand(0,35)};
$_SESSION["autonum"].=$authnum;
imagestring($im,$size,(6+$i*12),$str,$authnum,imagecolorallocate($im,rand(0,130),rand(0,130),rand(0,130)));

}
for($i=0;$i<150;$i++){
$randcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imagesetpixel($im,mt_rand()%100,mt_rand()%30,$randcolor);
}
imagepng($im);
imagedestroy($im);
?>
這是個驗證碼

熱點內容
微信視頻如何重新緩存 發布:2025-01-21 04:44:41 瀏覽:879
pdf壓縮文件大小 發布:2025-01-21 04:40:24 瀏覽:798
linux解壓文件到指定 發布:2025-01-21 04:38:36 瀏覽:874
自己做的安卓app怎麼下載 發布:2025-01-21 04:35:07 瀏覽:163
機頂盒加密頻道 發布:2025-01-21 04:26:48 瀏覽:318
騰訊應用加密 發布:2025-01-21 04:24:38 瀏覽:988
無法訪問f 發布:2025-01-21 04:24:36 瀏覽:539
sql實時 發布:2025-01-21 04:24:27 瀏覽:998
怎麼在linux伺服器上配ip地址 發布:2025-01-21 04:22:10 瀏覽:251
咖搭姆編程 發布:2025-01-21 04:19:45 瀏覽:674