php圖像函數
A. php圖像生成函數imagecreatetruecolor和imagecreate的區別
resource imagecreatetruecolor ( int $x_size , int $y_size )
返回一個圖像標識符,代表了一幅大小為 x_size 和 y_size 的黑色圖像。
resource imagecreate ( int $x_size , int $y_size )
返回一個圖像標識符,代表了一幅大小為
兩者在改變背景顏色時有些區別:
imagecreatetruecolor需要用imagefill()來填充顏色
imagecreate()需要用imagecolorAllocate()添加背景色
php案例如下:
<?php$img = imagecreatetruecolor(100,100); //創建真彩圖像資源$color = imagecolorAllocate($img,200,200,200); //分配一個灰色imagefill($img,0,0,$color); // 從左上角開始填充灰色header('content-type:image/jpeg'); //jpg格式imagejpeg($img); //顯示灰色的方塊?>
<?php$img = imagecreate(100,100);imagecolorallocate($img,200,200,200);header('content-type:image/jpeg'); imagejpeg($img); ?>
http://www.phpddt.com/php/imagecreate.html
B. php圖像函數
從提示的錯誤信息來看,這應該是由於dreamweaver的站點設置不完整造成的,一般來說,PHP等最終的顯示效果,還是要通過獨立運行瀏覽器來查看效果比較好。
C. 求php圖片縮放處理函數
<?php
/**
*圖片縮放
*@paramstring$url
*@paramint$maxWidth
*@paramint$maxHeight
*@returnstring
*/
functionthumb($url,$maxWidth,$maxHeight,&$info){
$info=$imgInfo=getimagesize($url);
$width=$imgInfo[0];//獲取圖片寬度
$height=$imgInfo[1];//獲取圖片高度
$r=min($maxHeight/$height,$maxWidth/$width);
if($r>=1){//不用縮放
$maxHeight=$height;
$maxWidth=$width;
}elseif($r<1){//縮放
$maxHeight=$height*$r;
$maxWidth=$width*$r;
}
$temp_img=imagecreatetruecolor($maxWidth,$maxHeight);//創建畫布
$fun=str_replace('/','createfrom',$imgInfo['mime']);
$im=$fun($url);
imageresized($temp_img,$im,0,0,0,0,$maxWidth,$maxHeight,$width,$height);
ob_start();
$fun=str_replace('/','',$imgInfo['mime']);
$fun($temp_img);
$imgstr=ob_get_contents();
ob_end_clean();
imagedestroy($im);
return$imgstr;
}
$imgUrl=$_GET['url'];
$info=array();
$string=thumb($imgUrl,500,500,$info);
$mimeArray=explode("/",$info['mime']);
header("Content-Type:image/{$mimeArray[1]}");
echo$string;
以上代碼存為thumb.php,調用效果:
D. 在php中圖像處理新建一個畫布用什麼函數
$newImage=imagecreatetruecolor($xSize,$ySize);
//增加一個白色的底,不然新建的畫布是黑色的
$white=imagecolorallocate($newImage,255,255,255);
imagefill($newImage,0,0,$white);
圖像處理也經常使用到imagemerge、getimagesize、imagecreatefromjpeg等函數,建議你看下這個鏈接,全是圖像處理的函數http://php.net/manual/zh/ref.image.php
E. 北大青鳥設計培訓:PHP中使用GD庫創建圓形餅圖
在php中,有一些簡單的圖像函數是可以直接使用的,但大多數要處理的圖像,都需要在編譯PHP時加上GD庫。
除了安裝GD庫之外,在PHP中還可能需要其他的庫,武漢電腦培訓http://www.kmbdqn.cn/認為這可以根據需要支持哪些圖像格式而定。
不同的GD版本支持的圖像格式不完全一樣,最新的GD庫版本支持GIF、JPEG、PNG、WBMP、XBM等格式的圖像文件,此外還支持一些如FreeType、Type1等字體庫。
通過GD庫中的函數,可以完成各種點、線、幾何圖形、文本及顏色的操作處理,也可以創建或讀取多種格式的圖像文件。
在PHP中,通過GD庫處理圖像的操作都是先在內存中處理,操作完成以後再以文件流的方式輸出到瀏覽器或保存在伺服器的磁碟中。
創建一個圖像應該完成如下所示4個基本步驟。
①創建畫布:所有的繪圖設計都需要在一個背景圖片上完成,而畫布實際上就是在內存中開辟的一塊臨時區域,用於存儲圖像的信息。
以後的圖像操作都將基於這個背景畫布,該畫布的管理就類似於我們在畫畫時使用的畫布。
②繪制圖像:畫布創建完成以後,就可以通過這個畫布資源,使用各種畫像函數設置圖像的顏色、填充畫布、畫點、線段、各種幾何圖形,以及向圖像中添加文本等。
③輸出圖像:完成整個圖像的繪制以後,需要將圖像以某種格式保存到伺服器指定的文件中,或將圖像直接輸出到瀏覽器上顯示給客戶。
但在圖像輸出之前,一定要使用header()函數發送Content-type通知瀏覽器,這次發送的是圖片不是文本。
④釋放資源:圖像被輸出以後,畫布中的內容也不再有用。
出於節約系統資源的考慮,需要及時清楚畫布佔用的所有內存資源。
我們先來了解一下一個非常簡單的創建圖像腳本。
在下面的腳本文件image.php中,按前面介紹的繪制圖像的四個步驟,使用GD庫動態輸出一個扇形統計圖。
F. PHP圖像函數的請教GD庫
move_uploaded_file() 函數將上傳的文件移動到新位置。
注釋:本函數僅用於通過 HTTP POST 上傳的文件。
你使用imageresampled創建的文件不能使用move_uploaded_file()
建議使用fwrite寫入。
G. 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--為一幅圖像分配顏色
+ alphaimagecolorat--取得某像素的顏色索引值
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 effectsimageline--畫一條直線
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() 的別名
H. php圖像生成函數imagecreatetruecolor和imagecreate的區別
用imagecreatetruecolor(int x,int y)建立的是一幅大小為 x和 y的黑色圖像(默認為黑色),如想改變背景顏色則需要用填充顏色函數imagefill($img,0,0,$color);
imagecreate 新建一個空白圖像資源,用imagecolorAllocate()添加背景色
上面兩個函數只不過是一個功能的兩種方法
具體用法見以下兩種方法:
<?php
$img = imagecreatetruecolor(100,100); //創建真彩圖像資源
$color = imagecolorAllocate($img,200,200,200); //分配一個灰色
imagefill($img,0,0,$color); // 從左上角開始填充灰色
header('content-type:image/jpeg'); //jpg格式
imagejpeg($img); //顯示灰色的方塊
?>
<?php
$img = imagecreate(100,100);
$color = imagecolorallocate($img,200,200,200);
header('content-type:image/jpeg'); //jpg格式
imagejpeg($img); //顯示灰色的方塊
?>
I. php 圖象處理函數 imagestring 函數的運用
可以用imagettftext來生成,支持truetype字體
array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
image
圖像資源。見 imagecreatetruecolor()。
size
字體大小。根據 GD 版本不同,應該以像素大小指定(GD1)或點大小(GD2)。
angle
角度製表示的角度,0 度為從左向右讀的文本。更高數值表示逆時針旋轉。例如 90 度表示從下向上讀的文本。
x
由 x,y 所表示的坐標定義了第一個字元的基本點(大概是字元的左下角)。這和 imagestring() 不同,其 x,y 定義了第一個字元的左上角。例如 "top left" 為 0, 0。
y
Y 坐標。它設定了字體基線的位置,不是字元的最底端。
color
顏色索引。使用負的顏色索引值具有關閉防鋸齒的效果。見 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字體的路徑。
根據 PHP 所使用的 GD 庫的不同,當 fontfile 沒有以 / 開頭時則 .ttf 將被加到文件名之後並且會在庫定義字體路徑中嘗試搜索該文件名。
當使用的 GD 庫版本低於 2.0.18 時,一個空格字元 而不是分號將被用來作為不同字體文件的「路徑分隔符」。不小心使用了此特性將會導致一條警告信息:Warning: Could not find/open font。對受影響的版本來說唯一解決方案就是將字體移動到不包含空格的路徑中去。
很多情況下字體都放在腳本的同一個目錄下。下面的小技巧可以減輕包含的問題。 <?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
文本字元串。
可以包含十進制數字化字元表示(形式為:€)來訪問字體中超過位置 127 的字元。UTF-8 編碼的字元串可以直接傳遞。
如果字元串中使用的某個字元不被字體支持,一個空心矩形將替換該字元。
imagettftext() 返回一個含有 8 個單元的數組表示了文本外框的四個角,順序為坐下角,右下角,右上角,左上角。這些點是相對於文本的而和角度無關,因此「左上角」指的是以水平方向看文字時其左上角。
例子 1. imagettftext() 例子
本例中的腳本將生成一個白色的 400x30 像素 PNG 圖像,其中有黑色(帶灰色陰影)Arial 字體寫的「Testing...」。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>