php縮放庫,php的縮放圖像類使用

標題: php的縮放圖像類使用

作者:李英江

日期: 2006-11-25 14:54:05

轉載請保留作者內容: http://www.cgsir.com

使用縮略圖有個好處就是可以減少用戶下載的時間,為此要在上傳圖片時生成一張比原圖小的圖片,一般的PHP空間都支持GD圖形庫,我的網站上GD版本是2.0.28,你可以自己寫圖像生成程序,php手冊有現成的例子,應該不難,但為了更快完成這功能,試用網上下載的一個縮放圖像類,感覺也蠻方便的。

注意:確認你的php支持GD庫,你可以通過使用 <?php phpinfo(); ?>查看你的GD版本,以下我的網站GD版本

0818b9ca8b590ca3270a3433284dd417.png

如果你的PHP沒有這些內容,那么說明你的php還不支持這個庫,我針對windows 和linux分別作說明。

Windows:

找到你的php.ini的配置文件,打開GD動態鏈接庫就可以了。也就是說找到“;extension=php_gd2.dll”把分號去掉,重起apache就可以了。

Linux:

# tar -zxf gd-2.0.33.tar.gz

# cd gd-2.0.33

# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png --with-zlib --with-freetype=/usr/local/freetype/

# make; make install

使用縮放圖像類:

1. 包含類 include_once('image_class.php');?? // 用于生成縮略圖類

2. 生成縮略圖 120*90? 0為不載圖 $small_img = new resizeimage($image_full_dir, 120, 90, 0); ($image_full_dir圖像存儲路徑)

以下是完整圖像類image_class.php 源碼:

/***************************************/

/*功? 能:利用PHP的GD庫生成高質量的縮略圖*/

/*運行環境:PHP5.01/GD2*/

/*類說明:可以選擇是/否裁圖。

如果裁圖則生成的圖的尺寸與您輸入的一樣。

原則:盡可能多保持原圖完整

如果不裁圖,則按照原圖比例生成新圖

原則:根據比例以輸入的長或者寬為基準*/

/*參 數:$img:源圖片地址

$wid:新圖的寬度

$hei:新圖的高度

$c:是否裁圖,1為是,0為否*/

/***************************************/

class resizeimage

{

//圖片類型

var $type;

//實際寬度

var $width;

//實際高度

var $height;

//改變后的寬度

var $resize_width;

//改變后的高度

var $resize_height;

//是否裁圖

var $cut;

//源圖象

var $srcimg;

//目標圖象地址

var $dstimg;

//臨????建的圖象

var $im;

function resizeimage($img, $wid, $hei,$c)??? {??????? $this->srcimg = $img;??????? $this->resize_width = $wid;??????? $this->resize_height = $hei;??????? $this->cut = $c;??????? //圖片的類型??????? $this->type = substr(strrchr($this->srcimg,"."),1);??????? //初始化圖象??????? $this->initi_img();??????? //目標圖象地址??????? $this -> dst_img();??????? //--??????? $this->width = imagesx($this->im);??????? $this->height = imagesy($this->im);??????? //生成圖象??????? $this->newimg();??????? ImageDestroy ($this->im);??? }??? function newimg()??? {??????? //改變后的圖象的比例??????? $resize_ratio = ($this->resize_width)/($this->resize_height);??????? //實際圖象的比例??????? $ratio = ($this->width)/($this->height);??????? if(($this->cut)=="1")??????? //裁圖??????? {??????????? if($ratio>=$resize_ratio)??????????? //高度優先??????????? {??????????????? $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);??????????????? imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);??????????????? ImageJpeg ($newimg,$this->dstimg);??????????? }??????????? if($ratioresize_width,$this->resize_height);??????????????? imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));??????????????? ImageJpeg ($newimg,$this->dstimg);??????????? }??????? }??????? else??????? //不裁圖??????? {??????????? if($ratio>=$resize_ratio)??????????? {??????????????? $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);??????????????? imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);??????????????? ImageJpeg ($newimg,$this->dstimg);??????????? }??????????? if($ratioresize_height)*$ratio,$this->resize_height);??????????????? imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);??????????????? ImageJpeg ($newimg,$this->dstimg);??????????? }??????? }??? }??? //初始化圖象??? function initi_img()??? {??????? if($this->type=="jpg")??????? {??????????? $this->im = imagecreatefromjpeg($this->srcimg);??????? }??????? if($this->type=="gif")??????? {??????????? $this->im = imagecreatefromgif($this->srcimg);??????? }??????? if($this->type=="png")??????? {??????????? $this->im = imagecreatefrompng($this->srcimg);??????? }??? }??? //圖象目標地址??? function dst_img()??? {??????? $full_length? = strlen($this->srcimg);??????? $type_length? = strlen($this->type);??????? $name_length? = $full_length-$type_length;??????? $name???????? = substr($this->srcimg,0,$name_length-1);??????? $this->dstimg = $name."s.".$this->type;??? }}?>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網頁設計工資一般多少_理發師工資一般多少錢一個月

現在社會物價上漲&#xff0c;就連理發的價格也上漲了&#xff0c;但是雖然價格上漲了&#xff0c;質量卻未必保證了。理發師在現在生活中可是少不了的&#xff0c;尤其是對女性朋友來說&#xff0c;發型設計可是至關重要的&#xff0c;因此雖然理發的價格上漲&#xff0c;但是…

php百度坐標轉騰訊坐標,PHP騰訊與百度坐標轉換

public function coordinate_switch($a,$b){//百度轉騰訊坐標轉換$x (double)$b - 0.0065;$y (double)$a - 0.006;$x_pi 3.14159265358979324;$z sqrt($x * $x$y * $y) - 0.00002 * sin($y * $x_pi);$theta atan2($y,$x) - 0.000003 * cos($x*$x_pi);$gb number_format($…

五筆字型鍵盤字根圖_手機輸入法的派別之爭:九宮格和全鍵盤,哪個更科學?...

本 文 約 3376 字閱 讀 需 要10 min有人的地方&#xff0c;就有江湖。而在手機輸入法的江湖里&#xff0c;也分為兩個派別。一個是九宮格輸入法&#xff0c;另一個則是全鍵盤輸入法。該問題的敏感程度&#xff0c;完全不亞于“咸甜豆腐腦”之爭。…

mysql32位的能裝在64位的電腦上嗎,mysql32位能裝64位電腦【excle中怎么將log值變回原來的數據庫】...

excle中怎么將log值變回原來的數據庫通過數據備份跟binlog記錄&#xff0c;可能原來的數據恢復步驟a)創建新的數據庫 create database rollback_db;b)將數據庫備份倒入新創建的rollback_db中c)找到數據庫備份的最后時間點&#xff0c;并將mysqlbinlog中該時間點之后的命令操作記…

java多線程編程_《java多線程編程實戰指南》讀書筆記 -- 基本概念

展開并發&#xff1a;多個線程操作相同資源&#xff0c;保證線程安全&#xff0c;合理使用資源高并發&#xff1a;服務能同時處理多個請求&#xff0c;提高程序性能測試上下文切換工具Lmbench3 測量上下文切換時長vmstat 測量上下文切換次數減少上下文切換無鎖并發編程&#xf…

php實現分頁mssql,PHP操作mssql數據庫類,含分頁類[分頁類原創]

/*** PHP操作mssql數據庫類&#xff0c;含分頁類* Enter description here ...* author aboc 9986584 2011-04-09**/class DB_Handle{var $ClassName "DB_Handle";var $Server;var $UserName;var $Password;var $Database;var $LinkID0;var $QueryResult""…

vue企業網站模板_模板網站VS定制網站,企業如何選擇?

步入互聯網時代&#xff0c;企業需要建設屬于自己的網站&#xff0c;網站建設到底是選擇模板網站&#xff0c;還是定制網站呢&#xff1f;筆者接下來跟大家詳細分析一下。網站建設的類型一、網站建設的類型模板網站模板型網站是用已經成形的網站為框架進行套用&#xff0c;根據…

mysql刪除盤點表,用友U8數據庫表名參照表修改號參考.doc

用友U8數據庫表名參照表修改號參考用友U8數據庫表名參照表Accessaries 成套件表AccInformation 帳套參數表AdjustPVouchAdjustPVouchsAp_AlarmSet 單位報警分類設置表Ap_BillAge 帳齡區間表Ap_Cancel 核銷情況表Ap_CancelNo 生成自動序號Ap_CloseBill 收付款結算表Ap_CtrlCode …

?php php,PHP: Balises PHP - Manual

Balises PHPLorsque PHP traite un fichier, il cherche les balises douverture etde fermeture (<?php et ?>)qui dlimitent le code quil doit interprter. De cettemanire, cela permet PHP dtre intgr dans toutes sortes de documents,car tout ce qui se trouv…

這張磁盤有寫保護_架構師不得不了解的硬件知識 - 磁盤陣列RAID

概述什么是RAID&#xff1f; RAID &#xff08; Redundant Array of Independent Disks &#xff09;即獨立磁盤冗余陣列&#xff0c;通常簡稱為磁盤陣列。簡單地說&#xff0c; RAID 是由多個獨立的高性能磁盤驅動器組成的磁盤子系統&#xff0c;從而提供比單個磁盤更高的存儲…

金蝶二次開發好跳槽嗎_金蝶財務軟件不會操作怎么辦?

還在為不會操作金蝶軟件而頭疼嗎?今天&#xff0c;小編和大家分享一些金蝶軟件實操技巧&#xff0c;讓大家更快速的完成工作&#xff01;接下來&#xff0c;跟著小編一起來學習吧&#xff5e;1、新增憑證快捷鍵2、修改、刪除憑證3、憑證審核說明&#xff1a;4、憑證過賬說明&a…

oracle查看登錄時間黑屏,史上最強黑屏行動-微軟20日黑屏反盜版驗證

盜版系統避免10月20號后出現黑屏的方法微軟將針對中國市場在本月20日啟動Windows XP專業版及Office的正版驗證計劃&#xff0c;屆時&#xff0c;安裝了盜版Windows XP專業版的電腦將被強行每小時“黑屏”(桌面背景變為純黑色)一次&#xff0c;Office的菜單欄將被添加“不是正版…

可信計算3.0工程初步pdf_查校 | 英國大學工業工程與運籌學專業40個授課碩士+研究Mphil/Phd 項目匯總...

關注“留學壹周刊”&#xff0c;回復專業名稱&#xff0c;如“金融”&#xff0c;可以自由查詢相關資料介紹本篇微信主要包括如下內容&#xff1a;1、2020Fall英國工業工程與運籌學專業授課類碩士(共26個項目)2、2020Fall英國工業工程與運籌學專業研究類PHD(共14個項目)3、2020…

oracle sql優化指導,基于Oracle的sql優化(1)

先創建表和索引create table emp_temp as select * from emp;create index idx_mgr_temp on emp_temp(mgr);create index idx_deptno_temp on emp_temp(deptno);執行sqlselect * from emp_temp where mgr>100 and deptno >100;查看優化器模式&#xff1a;SQL> show p…

怎么把此電腦放到桌面_Win10我的電腦怎么放到桌面

1/5點擊右鍵選擇“個性化”2/5進入后&#xff0c;點擊“主題”3/5在主題頁面的右側點擊“桌面圖標設置”4/5最后勾選“計算機”5/5再點擊“確定”即可

oracle nvarchar2 字符集不匹配,Oracle中NVARCHAR2字符集不匹配問題

Oracle中在做字符匹配時 遇到 NVARCHAR2 類型時報錯&#xff0c;提示 字符集不匹配。對使用 NVARCHAR2 的地方&#xff0c;需要對字段進行字符轉換&#xff0c;加上 to_char(nvarchar2 字段) 即可。例如&#xff1a;SELECT substr(bm.matnr, 3) wlbm, ms.maktx wlms, bm.meins …

vmware虛擬機安裝win7_圖文分享虛擬機怎么安裝win7系統

最近有朋友問有什么方法可以在不重裝系統的情況下體驗到其他的操作系統。那就是使用虛擬機吧&#xff0c;下面就以win7為例給大家分享一下在虛擬機安裝WIN7的步驟。1&#xff0c;打開運行虛擬機&#xff0c;然后點擊界面左上方的“文件”按鈕&#xff0c;菜單欄選擇“新建虛擬機…

oracle sql 查詢優化器,基于ORACLE成本優化器的SQL查詢優化分析與應用

第 39 卷 第 2 期2018 年 3 月 內蒙古農業大學學報( 自 然 科 學 版 ) Journal of Inner Mongolia Agricultural University ( Natural Science Edition) Vol&#xff0e; 39 No&#xff0e; 2 Mar&#xff0e; 2018 基于 O&#xff32;ACLE 成本優化器的 SQL 查詢 優化分析與應…

usb接口供電不足_1個USB接口變成4個?什么東西那么“牛”?請你花2分鐘了解一下...

USB分線器可以說是許多電腦用戶日常生活中必不可少的配件&#xff0c;有了這東西&#xff0c;能讓你的USB接口多出許多&#xff0c;關鍵是通過延長線可以把USB接口放置在你隨手可得的地方&#xff0c;可謂是一款家庭、辦公都很實用的小配件。USB分線器通常可以分為4、6、8個USB…

oracle 實例死掉,Oracle 監聽莫名死掉

有一臺oracle 10g的監聽莫名死掉&#xff0c;進行查看select * from v$versionOracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64biselect status,count(*) from v$session group by status order by count(*) desc;查看鏈接的session 情況在listener.ora 中添加…