PHP生成圖片縮略圖類示例
本文實(shí)例講述了PHP生成圖片縮略圖類。分享給大家供大家參考,具體如下:
class App_image_helper { protected $imgFileName; protected $imgWidth; protected $imgHeight; protected $imgMime; protected $imgResource; static $imgMineList = array( 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'wbmp' => 'image/wbmp', ); /** * 根據(jù)文件名,初始化圖片, * 計(jì)算出給定圖片的寬、高、圖片類型,并獲取圖片的資源保存到內(nèi)存,便于下次使用 * App_image_helper constructor. * * @param $fileName */ public function __construct($fileName) { $this->imgFileName = $fileName; list($this->imgWidth, $this->imgHeight, $this->imgMime) = $this->getImageInfo($this->imgFileName); $this->imgResource = $this->getImageResource($this->imgFileName); } /** * 根據(jù)圖片路徑獲取相關(guān)寬、高、MIME類型信息 * * @param $fileName * * @return array|null */ protected function getImageInfo($fileName) { $result = null; if ( is_file($fileName) ) { $tmpImageInfo = getimagesize($fileName); if ( $tmpImageInfo ) { $result = array($tmpImageInfo[0], $tmpImageInfo[1], $tmpImageInfo['mime']); } } return $result; } /** * 將圖片文件轉(zhuǎn)為資源類類型 * * @param $fileName * * @return null|resource */ protected function getImageResource($fileName) { $image = null; if ( is_file($fileName) ) { switch ($this->imgMime) { case self::$imgMineList['jpeg']: $image = imagecreatefromjpeg($fileName); break; case self::$imgMineList['gif']: $image = imagecreatefromgif($fileName); break; case self::$imgMineList['png']: $image = imagecreatefrompng($fileName); break; case self::$imgMineList['wbmp']: $image = imagecreatefromwbmp($fileName); break; default: break; } } return $image; } /** * 可根據(jù)固定寬,等比縮放圖片;或根據(jù)百分比,等比縮放圖片 * * @param int $width * @param int $percent * * @return array|null */ protected function getSizeByScale($width = 360, $percent = 1) { $result = null; if ( $this->imgWidth && $this->imgHeight ) { if ( $width ) { $result = array($width, intval($width * $this->imgHeight / $this->imgWidth)); } elseif ( $percent ) { $result = array(intval($this->imgWidth * $percent), intval($this->imgHeight * $percent)); } } return $result; } /** * 外調(diào) * * @param int $percentOrWidth int整數(shù)表示圖片縮放為固定寬度,0.0~0.99999表示縮放百分比 * @param null $fileName * @param int $quality * @param bool $reSample 重新采樣圖片,默認(rèn)是 * * @return bool */ public function createImage($percentOrWidth = 1, $fileName = null, $quality = 75, $reSample = true) { $result = false; $fileName ? header('Content-Type: ' . $this->imgMime) : false; $size = $this->getSizeByScale(($percentOrWidth <= 1) ? null : $percentOrWidth, $percentOrWidth); if ( $size ) { $thumb = imagecreatetruecolor($size[0], $size[1]); if ( $reSample ) { imagecopyresampled($thumb, $this->imgResource, 0, 0, 0, 0, $size[0], $size[1], $this->imgWidth, $this->imgHeight); } else { imagecopyresized($thumb, $this->imgResource, 0, 0, 0, 0, $size[0], $size[1], $this->imgWidth, $this->imgHeight); } $result = imagejpeg($thumb, $fileName, $quality); } return $result; } }
PS:這里再為大家推薦幾款比較實(shí)用的圖片處理工具供大家參考使用:
在線圖片轉(zhuǎn)換BASE64工具:
http://tools.jb51.net/transcoding/img2base64
ICO圖標(biāo)在線生成工具:
http://tools.jb51.net/aideddesign/ico_img
在線Email郵箱圖標(biāo)制作工具:
http://tools.jb51.net/email/emaillogo
在線圖片格式轉(zhuǎn)換(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php使用高斯算法實(shí)現(xiàn)圖片的模糊處理功能示例
- php生成條形碼的圖片的實(shí)例詳解
- PHP基于GD庫(kù)實(shí)現(xiàn)的生成圖片縮略圖函數(shù)示例
- PHP實(shí)現(xiàn)隨機(jī)生成水印圖片功能
- PHP生成圖片驗(yàn)證碼功能示例
- php生成二維碼圖片方法匯總
- php解析base64數(shù)據(jù)生成圖片的方法
- PHP使用內(nèi)置函數(shù)生成圖片的方法詳解
- PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
- php 生成文字png圖片的代碼
- 使用PHP生成圖片的縮略圖的方法
- PHP實(shí)現(xiàn)生成模糊圖片的方法示例
相關(guān)文章
PHP定時(shí)自動(dòng)生成靜態(tài)HTML的實(shí)現(xiàn)代碼
為了提高網(wǎng)站的訪問速度,我們往往采用生成靜態(tài)的方式來(lái)實(shí)現(xiàn),這樣確實(shí)把網(wǎng)站的訪問速度提高了非常多.2010-06-06PHP實(shí)現(xiàn)通過strace定位故障原因的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)通過strace定位故障原因的方法,結(jié)合實(shí)例形式分析了出現(xiàn)高負(fù)載情況下使用strace定位故障原因的相關(guān)命令與操作技巧,需要的朋友可以參考下2018-04-04

Thinkphp框架開發(fā)移動(dòng)端接口(1)

PHP單例模式應(yīng)用示例【多次連接數(shù)據(jù)庫(kù)只實(shí)例化一次】