本文實(shí)例講述了php圖像處理類。分享給大家供大家參考。具體如下:
<?php
/**
* Image 類
*/
class Image {
/**
* @var string $fileName 文件名
* @access private
*/
private $fileName = '';
/**
* @var gd resource $imageResource 原圖像
* @access private
*/
private $imageResource = NULL;
/**
* @var int $imageWidth 原圖像寬
* @access private
*/
private $imageWidth = NULL;
/**
* @var int $imageHeight 原圖像高
* @access private
*/
private $imageHeight = NULL;
/**
* @var int $imageType 原圖像類型
* @access private
*/
private $imageType = NULL;
/**
* @var int $imageWidth 原圖像寬
* @access private
*/
public $width = NULL;
/**
* @var int $imageHeight 原圖像高
* @access private
*/
public $height = NULL;
/**
* @var int $imageType 原圖像類型
* @access private
*/
public $type = NULL;
/**
* @var int $newResource 新圖像
* @access private
*/
private $newResource = NULL;
/**
* @var int $newResType 新圖像類型
* @access private
*/
private $newResType = NULL;
/**
* 構(gòu)造函數(shù)
* @param string $fileName 文件名
*/
public function __construct($fileName = NULL) {
$this->fileName = $fileName;
if ($this->fileName) {
$this->getSrcImageInfo();
}
}
/**
* 取源圖像信息
* @access private
* @return void
*/
private function getSrcImageInfo() {
$info = $this->getImageInfo();
$this->imageWidth = $info[0];
$this->imageHeight = $info[1];
$this->imageType = $info[2];
$this->width = $info[0];
$this->height = $info[1];
$this->type = $info[2];
}
/**
* 取圖像信息
* @param string $fileName 文件名
* @access private
* @return array
*/
private function getImageInfo($fileName = NULL) {
if ($fileName==NULL) {
$fileName = $this->fileName;
}
$info = getimagesize($fileName);
return $info;
}
/**
* 創(chuàng)建源圖像GD 資源
* @access private
* @return void
*/
private function createSrcImage () {
$this->imageResource = $this->createImageFromFile();
}
/**
* 跟據(jù)文件創(chuàng)建圖像GD 資源
* @param string $fileName 文件名
* @return gd resource
*/
public function createImageFromFile($fileName = NULL)
{
if (!$fileName) {
$fileName = $this->fileName;
$imgType = $this->imageType;
}
if (!is_readable($fileName) || !file_exists($fileName)) {
throw new Exception('Unable to open file "' . $fileName . '"');
}
if (!$imgType) {
$imageInfo = $this->getImageInfo($fileName);
$imgType = $imageInfo[2];
}
switch ($imgType) {
case IMAGETYPE_GIF:
$tempResource = imagecreatefromgif($fileName);
break;
case IMAGETYPE_JPEG:
$tempResource = imagecreatefromjpeg($fileName);
break;
case IMAGETYPE_PNG:
$tempResource = imagecreatefrompng($fileName);
break;
case IMAGETYPE_WBMP:
$tempResource = imagecreatefromwbmp($fileName);
break;
case IMAGETYPE_XBM:
$tempResource = imagecreatefromxbm($fileName);
break;
default:
throw new Exception('Unsupport image type');
}
return $tempResource;
}
/**
* 改變圖像大小
* @param int $width 寬
* @param int $height 高
* @param string $flag 一般而言,允許截圖則用4,不允許截圖則用1; 假設(shè)要求一個(gè)為4:3比例的圖像,則:4=如果太長(zhǎng)則自動(dòng) 主站蜘蛛池模板: 沈阳市| 铁岭县| 庆元县| 宁南县| 福安市| 昌平区| 平远县| 晋中市| 津南区| 桃江县| 延安市| 闻喜县| 炎陵县| 兴业县| 奉节县| 绥化市| 会理县| 汶川县| 新绛县| 都江堰市| 民乐县| 永登县| 保靖县| 临海市| 宜兰县| 阜平县| 湖北省| 涿州市| 托克托县| 封丘县| 施秉县| 武山县| 河东区| 噶尔县| 沾益县| 北海市| 公主岭市| 南皮县| 沅陵县| 翁牛特旗| 安乡县|