php生成縮略圖
Jun 08, 2016 pm 05:33 PM自動微縮圖的生成
????由于圖片的數(shù)據(jù)量比較大,傳遞過程相對較長,所以在用戶瀏覽圖片時,常常希望先
顯示一個圖片的縮略圖。
????雖然在HTML中可以通過指定圖片的寬度和高度來隨意縮放圖片,但是這種方法不會
減少圖片的像素數(shù)目。圖形文件的尺寸沒有改變,當然也不會加快圖片下載的速度了。當
然也可以手動通過圖形軟件生成圖片的縮略圖,但對于大量的圖片展示來說,這個工作量
將十分巨大。為此微縮圖的自動生成程序就被設計出來了。
????PHP中提供的imagecopyresized函數(shù)就可以用來生成真正的縮賂圖片。該函數(shù)的標推
語法如下:
????語法: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ù)種類:圖形處理
??內(nèi)容說明:本函數(shù)可復制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)都是目的在前,來
源在后。參數(shù)dst im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的
及來源的坐標。參數(shù)dstW、dstH、srcW、srcH分別為來源及目的的寬及高,欲調(diào)整的新圖
的尺寸就在這兒配置。
????下面舉個例子來說明這個函數(shù)的用法,對應的程序thumb.php如程序清單12—5所示。
??程序清單12—5??thumb.php
// 本函數(shù)從源文件取出圖像,設定成指定大小,并輸出到目的文件
// 源文件格式:gif,jpg,png
// 目的文件格式:gif
// $srcFile:源文件
// $dstFile: 目標文件
// $dstW:目標圖片寬度
// $dstH:目標文件高度
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);
// 如果需要其他格式的圖片,改動最后一句就可以了
}
?>
在這個例子中,首先通過getimagesize()函數(shù)獲得源圖片的情況,再用 imagecreatefromgif()、
imagecreatefromjpeg()或imagecreatefrompng()創(chuàng)建一個源位圖$imgsrc,然后用
imagecreate()函數(shù)創(chuàng)建一個目標位圖,其長、寬各是源位圖的一半。然后調(diào)用imagecopyresized()
函數(shù),將源位圖縮小后拷貝到目標位圖中,最后再用imagegif()函數(shù)生成縮略圖。
????這里所用到的圖形處理函數(shù)就是由安裝的GD庫提供的,現(xiàn)對其分別進行說明。首先
介紹getimagesize()函數(shù),其標準語法如下。
????語法:array getimagesize(string filename,array [imageinfo]);
????返回值:數(shù)組
????函數(shù)種類:圖形處理
????內(nèi)容說明:本函數(shù)可用來取得GIF、JPEG及PNG??3種WWW上圖片的高與寬,不
需要安裝GD library就可以便用本函數(shù)。返回的數(shù)組有4個元素,返回數(shù)組的第一個元素(索
引值0)是圖片的高度,單位是像素(pixel);第二個元素(索引值1)是圖片的寬度;第三個元
素(索引值2)是圖片的文件格式,其值1為GIF格式、2為JPEG/JPG格式、3為PNG格式;
第四個元素(索引值3)為圖片的高與寬字符串,height=xxx width=yyy。
????通過getimagesize()函數(shù)的應用,能輕易獲取圖片的各種信息。下面給大家舉一個獲取
圖片寬度、高度、格式、文件大小的信息的例子,來進一步領會getimagesize()函數(shù)的使用
技巧。程序imginfo如程序清單12—6所示。
??程序清單12-6??imginfo.php
function getImageInfo($img) //$img為圖像文件絕對路徑
{
$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中要創(chuàng)建一個縮略圖,需要先創(chuàng)建一個用來繪圖的空白的畫布。
ImageCreate函數(shù)可以做到這一點。它將返回一個圖像的標識符,并且需要告訴函數(shù)用像素
計算的畫布有多大(x(寬度)與y(高度))。在程序12-5中用到的圖形創(chuàng)建函數(shù)imagecreate()
的標準語法如下:
????語法:int imagecreate(int x_size,int y_size);
????返回值:整數(shù)
????函數(shù)種類:圖形處理
????內(nèi)容說明:本函數(shù)用來建立一張全空的圖形。參數(shù)x_size、y_size為圖形的尺寸,單位
為像素(pixel)。
????如果要從已經(jīng)存在的圖片中取出圖片文件代碼,可以用imagecreatefromgif()、
imagecreatefromjpeg()或imagecreatefrompng(),例如函數(shù)imagecreatefromgif()就是從一個GIF
格式的圖片文件中取出對應的圖片源代碼,其標準語法如下:
??語法:int imagecreatefromgif(string filename);
??返回值:整數(shù)
??函數(shù)種類:圖形處理
??內(nèi)容說明:本函數(shù)用來取出一張GIF格式圖形,通常作為背景或者基本的畫布樣本使
用。參數(shù)filename可以是本地端的文件,也可以是網(wǎng)絡的URL地址。返回值為GIF的文件
代碼,可供其他函數(shù)使用。
????在將源位圖縮小后拷貝到目標位圖中時,用到了imagecopyresized()函數(shù),此函數(shù)可以
復制新圖并調(diào)整大小,其標準語法如下:
????語法: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ù)種類:圖形處理
????內(nèi)容說明:本函數(shù)可復制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)那是目的在前,來
源在后。參數(shù)ddst_im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的
及來源的坐標。參數(shù)dstW、dstH、srcW、srcH分別為來源及目的的寬及高,若欲調(diào)整新圖
的尺寸就在這里配置。
????最后在輸出圖像時用到的imagegif()函數(shù)的標準語法如下:
????語法:int imagegif(int im,string [filename]);
????返問值:整數(shù)
????函數(shù)種類:圖形處理
????內(nèi)容說明:本函數(shù)用來建立一張GIF格式圖形。參數(shù)im為使用ImageCreate()所建立
的圖片代碼,參數(shù)filename可省略,若無本參數(shù)filename,則會將圖片直接送到瀏覽器端,
記得在送出圖片之前要先送出使用Content-type:image/gif的標頭字符串(header)到瀏覽器
端,以順利傳輸圖片。若要使用透明背景的GIF圖,也就是GIF89a的格式,需要先使用
ImageColorTransparent()配置透明背景。本函數(shù)產(chǎn)生的GIF圖,由于有版權的問題,因此
在商業(yè)上的使用還要多加考慮。

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

「你的組織要求你更改PIN訊息」將顯示在登入畫面上。當在使用基於組織的帳戶設定的電腦上達到PIN過期限制時,就會發(fā)生這種情況,在該電腦上,他們可以控制個人設備。但是,如果您使用個人帳戶設定了Windows,則理想情況下不應顯示錯誤訊息。雖然情況並非總是如此。大多數(shù)遇到錯誤的使用者使用個人帳戶報告。為什麼我的組織要求我在Windows11上更改我的PIN?可能是您的帳戶與組織相關聯(lián),您的主要方法應該是驗證這一點。聯(lián)絡網(wǎng)域管理員會有所幫助!此外,配置錯誤的本機原則設定或不正確的登錄項目也可能導致錯誤。即

Windows11將清新優(yōu)雅的設計帶到了最前沿;現(xiàn)代介面可讓您個性化和更改最精細的細節(jié),例如視窗邊框。在本指南中,我們將討論逐步說明,以協(xié)助您在Windows作業(yè)系統(tǒng)中建立反映您的風格的環(huán)境。如何更改視窗邊框設定?按+開啟“設定”應用程式。 WindowsI前往個人化,然後按一下顏色設定。顏色變更視窗邊框設定視窗11「寬度=」643「高度=」500「>找到在標題列和視窗邊框上顯示強調(diào)色選項,然後切換它旁邊的開關。若要在「開始」功能表和工作列上顯示主題色,請開啟「在開始」功能表和工作列上顯示主題

開啟img檔案的方法有使用虛擬光碟機軟體開啟、使用壓縮軟體開啟和使用專用工具開啟。詳細介紹:1、使用虛擬光碟機軟體打開,下載並安裝一個虛擬光碟機軟體,右鍵單擊img文件,選擇“打開方式”或“關聯(lián)程序”,在彈出的對話框中選擇安裝的虛擬光驅(qū)軟體,虛擬光碟機軟體會自動載入img文件,並將其作為虛擬光碟機中的光碟映像,雙擊虛擬光碟機中的光碟圖標,即可開啟img檔案並存取其中的內(nèi)容等等。

預設情況下,Windows11上的標題列顏色取決於您選擇的深色/淺色主題。但是,您可以將其變更為所需的任何顏色。在本指南中,我們將討論三種方法的逐步說明,以更改它並個性化您的桌面體驗,使其具有視覺吸引力。是否可以更改活動和非活動視窗的標題列顏色?是的,您可以使用「設定」套用變更活動視窗的標題列顏色,也可以使用登錄編輯程式變更非活動視窗的標題列顏色。若要了解這些步驟,請前往下一部分。如何在Windows11中變更標題列的顏色? 1.使用「設定」應用程式按+開啟設定視窗。 WindowsI前往“個人化”,然

工作列縮圖可能很有趣,但它們也可能分散注意力或煩人??紤]到您將滑鼠懸停在該區(qū)域的頻率,您可能無意中關閉了重要視窗幾次。另一個缺點是它使用更多的系統(tǒng)資源,因此,如果您一直在尋找一種提高資源效率的方法,我們將向您展示如何停用它。不過,如果您的硬體規(guī)格可以處理它並且您喜歡預覽版,則可以啟用它。如何在Windows11中啟用工作列縮圖預覽? 1.使用「設定」應用程式點擊鍵並點選設定。 Windows按一下系統(tǒng),然後選擇關於。點選高級系統(tǒng)設定。導航至“進階”選項卡,然後選擇“效能”下的“設定”。在「視覺效果」選

您是否在Windows安裝程式頁面上看到「出現(xiàn)問題」以及「OOBELANGUAGE」語句? Windows的安裝有時會因此類錯誤而停止。 OOBE表示開箱即用的體驗。正如錯誤提示所表示的那樣,這是與OOBE語言選擇相關的問題。沒有什麼好擔心的,你可以透過OOBE螢幕本身的漂亮註冊表編輯來解決這個問題??焖傩迯通C1.點選OOBE應用底部的「重試」按鈕。這將繼續(xù)進行該過程,而不會再打嗝。 2.使用電源按鈕強制關閉系統(tǒng)。系統(tǒng)重新啟動後,OOBE應繼續(xù)。 3.斷開系統(tǒng)與網(wǎng)際網(wǎng)路的連接。在脫機模式下完成OOBE的所

在Windows11上的顯示縮放方面,我們都有不同的偏好。有些人喜歡大圖標,有些人喜歡小圖標。但是,我們都同意擁有正確的縮放比例很重要。字體縮放不良或圖像過度縮放可能是工作時真正的生產(chǎn)力殺手,因此您需要知道如何自訂以充分利用系統(tǒng)功能。自訂縮放的優(yōu)點:對於難以閱讀螢幕上的文字的人來說,這是一個有用的功能。它可以幫助您一次在螢幕上查看更多內(nèi)容。您可以建立僅適用於某些監(jiān)視器和應用程式的自訂擴充功能設定檔??梢詭椭岣叩碗A硬體的效能。它使您可以更好地控制螢幕上的內(nèi)容。如何在Windows11

螢幕亮度是使用現(xiàn)代計算設備不可或缺的一部分,尤其是當您長時間注視螢幕時。它可以幫助您減輕眼睛疲勞,提高易讀性,並輕鬆有效地查看內(nèi)容。但是,根據(jù)您的設置,有時很難管理亮度,尤其是在具有新UI更改的Windows11上。如果您在調(diào)整亮度時遇到問題,以下是在Windows11上管理亮度的所有方法。如何在Windows11上變更亮度[10種方式解釋]單一顯示器使用者可以使用下列方法在Windows11上調(diào)整亮度。這包括使用單一顯示器的桌上型電腦系統(tǒng)以及筆記型電腦。讓我們開始吧。方法1:使用操作中心操作中心是訪問
