PHP之圖像處理

PHP中提供了一些對圖像進行編輯處理的函數,其中最爲典型的應用爲隨機圖形驗證碼、圖片水印以及數據統計中餅狀圖和柱狀圖的生成等php

 

PHP中有的圖形函數能夠直接使用,但多數須要在安裝了GD2函數庫後才能使用。在Windows平臺下安裝GD2庫很簡單,就是PHP5自帶的ext目錄中的php_gd2_dll文件。瀏覽器

若是沒有,說明安裝PHP時沒有安裝GD2庫,打開php.ini文件,查看php.ini文件(c:\winsows),查看文件中是否有一句";extension = php_gd2.dll"(Paths and Directories 裏),若是有,將其中的「;」去掉,再將文件中擴展目錄extension_dir的值設置成PHP的ext目錄所在的完整路徑,如"extension_dir = E:\php5\ext",保存後重啓Apache便可函數

 

繪製一個圖形通常包括4個步驟:1)建立一個背景,2)在背景中繪製圖形或輸入文本,3)輸出圖形,4)釋放全部資源spa

在此以前注意先將php.ini文件裏 Language Options下的output_buffering默認的off改成on,而後重啓Apache(Apache Restart),不然會出現以下的Warning:code

 

Cannot modify header information - headers already sent by.....orm

例:繪製PNG圖形,如繪製一條直線blog

$image = imagecreate(400,400);//建立一個圖像,兩個參數表示圖像的寬度和高度,單位爲像素,並返回此圖像的數據流
$background_color = imagecolorallocate($image,255,255,255);//爲圖像設置了白色的背景流,
$black = imagecolorallocate($image,0,0,0);//爲圖像設置了黑色的背景流
imageline($image,0,0,100,100,$black);//繪製一條直線,並設置其顏色爲黑色
ob_clean();//清除輸出,不然圖像沒法顯示
header("Content-type:image/png");//向瀏覽器發送頭信息,輸出png圖片
imagepng($image);//輸出圖形
imagedestroy($image);//清除資源

 

圖像處理函數能夠直接建立一個圖像流來繪製圖形,還能夠將現有的圖片做爲圖像流讀入,而後在次基礎上對圖像進行修飾,如加上水印效果等。這種功能經常使用來防止圖片被盜用圖片

例:在原始圖片(jpeg格式)上添加一個水印網址資源

    ob_clean();
    header("Content-type:image/jpeg");
    $im = imagecreatefromjpeg("dog.jpg");
    $red = imagecolorallocate($im,255,0,0);
    imagestring($im,5,6,10,"http://www.cnblogs.com/520xiuge/",$red);
    imagejpeg($im);
    imagedestroy($im);
相關文章
相關標籤/搜索