色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

php生成略縮圖代碼

雖然在HTML中可以通過(guò)指定圖片的寬度和高度來(lái)隨意縮放圖片,但是這種方法不會(huì)減少圖片的像素?cái)?shù)目。圖形文件的尺寸沒(méi)有改變,當(dāng)然也不會(huì)加快圖片下載的速度了。當(dāng)然也可以手動(dòng)通過(guò)圖形軟件生成圖片的縮略圖,但對(duì)于大量的圖片展示來(lái)說(shuō),這個(gè)工作量將十分巨大。為此微縮圖的自動(dòng)生成程序就被設(shè)計(jì)出來(lái)了。
php中提供的imagecopyresized函數(shù)就可以用來(lái)生成真正的縮賂圖片。該函數(shù)的標(biāo)推
語(yǔ)法如下:
語(yǔ)法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,
int srcX,int srcY,int dstW,int dstH,int srcW,int srcH);

返回值:整數(shù)
函數(shù)種類(lèi):圖形處理
內(nèi)容說(shuō)明:本函數(shù)可復(fù)制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)都是目的在前,來(lái)源在后。參數(shù)dst im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的及來(lái)源的坐標(biāo)。參數(shù)dstW、dstH、srcW、srcH分別為來(lái)源及目的的寬及高,欲調(diào)整的新圖的尺寸就在這兒配置。
下面舉個(gè)例子來(lái)說(shuō)明這個(gè)函數(shù)的用法,對(duì)應(yīng)的程序thumb.php如程序清單12―5所示。

程序清單12―5 thumb.php
復(fù)制代碼 代碼如下:
<?
// 本函數(shù)從源文件取出圖像,設(shè)定成指定大小,并輸出到目的文件
// 源文件格式:gif,jpg,png
// 目的文件格式:gif
// $srcFile:源文件
// $dstFile: 目標(biāo)文件
// $dstW:目標(biāo)圖片寬度
// $dstH:目標(biāo)文件高度
function makethumb($srcFile,$dstFile,$dstW,$dstH)
{
$data = GetImageSize($srcFile,&$info);
switch ($data[2])
{
case 1:
$imgsrc = @ImageCreateFromGIF($srcFile);
break;
case 2:
$imgsrc = @ImageCreateFromJPEG($srcFile);
break;
case 3:
$imgsrc = @ImageCreateFromPNG($srcFile);
break;
}
$srcW = ImageSX($imgsrc);
$srcH = ImageSY($imgsrc);
$ni = ImageCreate($dstW,$dstH);
ImageCopyResized($ni,$imgsrc,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
Imagegif($ni,$dstFile);
// 如果需要輸出到瀏覽器,那么將上一句改為 ImageJpeg($ni);
// 如果需要其他格式的圖片,改動(dòng)最后一句就可以了
}
?>

在這個(gè)例子中,首先通過(guò)getimagesize()函數(shù)獲得源圖片的情況,再用 imagecreatefromgif()、
imagecreatefromjpeg()或imagecreatefrompng()創(chuàng)建一個(gè)源位圖$imgsrc,然后用
imagecreate()函數(shù)創(chuàng)建一個(gè)目標(biāo)位圖,其長(zhǎng)、寬各是源位圖的一半。然后調(diào)用imagecopyresized()
函數(shù),將源位圖縮小后拷貝到目標(biāo)位圖中,最后再用imagegif()函數(shù)生成縮略圖。
這里所用到的圖形處理函數(shù)就是由安裝的GD庫(kù)提供的,現(xiàn)對(duì)其分別進(jìn)行說(shuō)明。首先
介紹getimagesize()函數(shù),其標(biāo)準(zhǔn)語(yǔ)法如下。
語(yǔ)法:array getimagesize(string filename,array [imageinfo]);
返回值:數(shù)組
函數(shù)種類(lèi):圖形處理
內(nèi)容說(shuō)明:本函數(shù)可用來(lái)取得GIF、JPEG及PNG 3種WWW上圖片的高與寬,不需要安裝GD library就可以便用本函數(shù)。返回的數(shù)組有4個(gè)元素,返回?cái)?shù)組的第一個(gè)元素(索引值0)是圖片的高度,單位是像素(pixel);第二個(gè)元素(索引值1)是圖片的寬度;第三個(gè)元素(索引值2)是圖片的文件格式,其值1為GIF格式、2為JPEG/JPG格式、3為PNG格式;
第四個(gè)元素(索引值3)為圖片的高與寬字符串,height=xxx width=yyy。
通過(guò)getimagesize()函數(shù)的應(yīng)用,能輕易獲取圖片的各種信息。下面給大家舉一個(gè)獲取圖片寬度、高度、格式、文件大小的信息的例子,來(lái)進(jìn)一步領(lǐng)會(huì)getimagesize()函數(shù)的使用 技巧。
程序imginfo如程序清單12―6所示。

程序清單12-6 imginfo.php
復(fù)制代碼 代碼如下:
<?php
function getImageInfo($img) //$img為圖像文件絕對(duì)路徑
{
$img_info = getimagesize($img);
switch ($img_info[2])
{
case 1:
$imgtype = "GIF";
break;
case 2:
$imgtype = "JPG";
break;
case 3:
$imgtype = "PNG";
break;
}
$img_type = $imgtype."圖像";
$img_size = ceil(filesize($img)/1000)."k"; //獲取文件大小

$new_img_info = array (
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$img_type,
"size"=>$img_size
);
print " width";
print $img_info[0];
print " height";
print $img_info[1];
print " format";
print $img_type;
print " size";
print $img_size;
print $new_img_info;
}

$img = "/www/htdocs/images/jf.gif";
getImageInfo($img);
?>


在程序12-5中要?jiǎng)?chuàng)建一個(gè)縮略圖,需要先創(chuàng)建一個(gè)用來(lái)繪圖的空白的畫(huà)布。
ImageCreate函數(shù)可以做到這一點(diǎn)。它將返回一個(gè)圖像的標(biāo)識(shí)符,并且需要告訴函數(shù)用像素
計(jì)算的畫(huà)布有多大(x(寬度)與y(高度))。在程序12-5中用到的圖形創(chuàng)建函數(shù)imagecreate()
的標(biāo)準(zhǔn)語(yǔ)法如下:
語(yǔ)法:int imagecreate(int x_size,int y_size);
返回值:整數(shù)
函數(shù)種類(lèi):圖形處理
內(nèi)容說(shuō)明:本函數(shù)用來(lái)建立一張全空的圖形。參數(shù)x_size、y_size為圖形的尺寸,單位
為像素(pixel)。

如果要從已經(jīng)存在的圖片中取出圖片文件代碼,可以用imagecreatefromgif()、
imagecreatefromjpeg()或imagecreatefrompng(),例如函數(shù)imagecreatefromgif()就是從一個(gè)GIF
格式的圖片文件中取出對(duì)應(yīng)的圖片源代碼,其標(biāo)準(zhǔn)語(yǔ)法如下:
語(yǔ)法:int imagecreatefromgif(string filename);
返回值:整數(shù)
函數(shù)種類(lèi):圖形處理
內(nèi)容說(shuō)明:本函數(shù)用來(lái)取出一張GIF格式圖形,通常作為背景或者基本的畫(huà)布樣本使
用。參數(shù)filename可以是本地端的文件,也可以是網(wǎng)絡(luò)的URL地址。返回值為GIF的文件
代碼,可供其他函數(shù)使用。
在將源位圖縮小后拷貝到目標(biāo)位圖中時(shí),用到了imagecopyresized()函數(shù),此函數(shù)可以
復(fù)制新圖并調(diào)整大小,其標(biāo)準(zhǔn)語(yǔ)法如下:
語(yǔ)法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,
int dstW,int dstH,int srcW,int srcH);
返回值:整數(shù)
函數(shù)種類(lèi):圖形處理

內(nèi)容說(shuō)明:本函數(shù)可復(fù)制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)那是目的在前,來(lái)
源在后。參數(shù)ddst_im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的
及來(lái)源的坐標(biāo)。參數(shù)dstW、dstH、srcW、srcH分別為來(lái)源及目的的寬及高,若欲調(diào)整新圖
的尺寸就在這里配置。
最后在輸出圖像時(shí)用到的imagegif()函數(shù)的標(biāo)準(zhǔn)語(yǔ)法如下:
語(yǔ)法:int imagegif(int im,string [filename]);
返問(wèn)值:整數(shù)
函數(shù)種類(lèi):圖形處理
內(nèi)容說(shuō)明:本函數(shù)用來(lái)建立一張GIF格式圖形。參數(shù)im為使用ImageCreate()所建立
的圖片代碼,參數(shù)filename可省略,若無(wú)本參數(shù)filename,則會(huì)將圖片直接送到瀏覽器端,
記得在送出圖片之前要先送出使用Content-type:image/gif的標(biāo)頭字符串(header)到瀏覽器
端,以順利傳輸圖片。若要使用透明背景的GIF圖,也就是GIF89a的格式,需要先使用
ImageColorTransparent()配置透明背景。本函數(shù)產(chǎn)生的GIF圖,由于有版權(quán)的問(wèn)題,因此
在商業(yè)上的使用還要多加考慮。

php技術(shù)php生成略縮圖代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 安平县| 靖江市| 荣昌县| 平湖市| 陆良县| 新源县| 永嘉县| 防城港市| 武胜县| 湖北省| 固原市| 平度市| 赤城县| 招远市| 潼南县| 香港| 东乌珠穆沁旗| 日土县| 通州区| 黑山县| 云阳县| 科尔| 陇西县| 广南县| 阳西县| 依兰县| 井陉县| 陇川县| 京山县| 南投县| 修武县| 奎屯市| 孝感市| 文化| 民县| 榕江县| 陕西省| 古浪县| 明水县| 兴宁市| 沅陵县|