码迷,mamicode.com
首页 > 其他好文 > 详细

IImage--factory

时间:2015-07-15 20:32:39      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

<?php
/* 实例4 */
/* 使用工厂类解析图像工作 */
interface IImage {
function getWidth();
function getHeight();
function getData();
}
class Image_PNG implements IImage {
protected $_width, $height, $_data;
public function __construct($file) {
$this->_file = $file;
$this->_parse();
}
private function _parse() {
//完成PNG格式的解析工作
//并填充$_width, $_height, $_data
$this->_data = getimagesize($this->_file);
list($this->_width, $this->_height) = $this->_data;
}
public function getWidth() {
return $this->_width;
}
public function getHeight() {
return $this->_height;
}
public function getData() {
return $this->_data;
}
}
class Image_JPGE implements IImage {
protected $_width, $_height, $_data;
public function __construct($file) {
$this->_file = $file;
$this->_parse();
}
private function _parse() {
//完成JPGE格式的解析工作
//并填充$_width, $_height, $_data
//$this->_width = imagesx($this->_file);
//$this->_height = imagesx($this->_file);
$this->_data = getimagesize($this->_file);
list($this->_width, $this->_height) = $this->_data;
}
public function getWidth(){
return $this->_width;
}
public function getHeight(){
return $this->_height;
}
public function getData() {
return $this->_data;
}
}
class ImageFactory {
public static function factory($file) {
$filename = pathinfo($file);
switch(strtolower($filename[‘extension‘])){
case ‘jpg‘:
$return = new Image_JPEG($file);
break;
case ‘png‘:
$return = new Image_PNG($file);
break;
default:
echo ‘图片类型不正确‘;
break;
}
if($return instanceof IImage) {
return $return ;
} else {
echo ‘出错了‘;
exit();
}
}
}
$image = ImageFactory::factory(‘path/my.png‘);
var_dump($image->getWidth());
echo ‘<br>‘;
print_r($image->getheight());
echo ‘<br>‘;
print_r($image->getData());

IImage--factory

标签:

原文地址:http://www.cnblogs.com/yhdsir/p/4649230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!