<?php
define('ROOT','D:/wamp/www/php3/');
class p_w_picpath{
protected $im;
protected $img_width;
protected $img_height;
protected $img_type;
public function create_img($img){
$info=$this->getimginfo($img);
$this->img_width=$info[0];
$this->img_height=$info[1];
$this->img_type=$info[2];
$this->bigpic($img);
$small=$this->smallpic();
$filename=$this->chkmkdir($img);
$this->saveImg($filename,$small);
$filename=str_replace(ROOT,'',$filename);
return $filename;
}
//获取图片信息
protected function getimginfo($img){
return getp_w_picpathsize($img);
}
//获取大图(即原图)的图像资源
protected function bigpic($img){
switch ($this->img_type) {
case 1:
$this->im=p_w_picpathcreatefromgif($img);
break;
case 2:
$this->im=p_w_picpathcreatefromjpeg($img);
break;
case 3:
$this->im=p_w_picpathcreatefrompng($img);
break;
case 6:
$this->im=p_w_picpathcreatefromwbmp($img);
break;
default:
return false;
}
}
//创建缩略图并返回缩略图的资源
protected function smallpic(){
$in=p_w_picpathcreatetruecolor(100, 100);
$color=p_w_picpathcolorallocate($in,255,255,255);
p_w_picpathfill($in,0,0,$color);
if($this->img_width>=$this->img_height){
$width=100;
$height=($this->img_height/$this->img_width)*100;
}else{
$height=100;
$width=($this->img_width/$this->img_height)*100;
}
$x=(100-$width)/2;
$y=(100-$height)/2;
p_w_picpathcopyresampled($in, $this->im, $x, $y, 0, 0, $width, $height, $this->img_width, $this->img_height);
return $in;
}
//创建存放缩略图的目录
protected function chkmkdir($img){
$path=dirname($img).'/small';
if(!is_dir($path)){
if(!mkdir($path)){
return false;
}
}
$filename=$path.'/small_'.substr(strrchr($img,'/'),1);
return $filename;
}
//保存缩略图
protected function saveImg($filename,$small){
switch ($this->img_type) {
case 1:
p_w_picpathgif($small,$filename);
break;
case 2:
p_w_picpathjpeg($small,$filename);
break;
case 3:
p_w_picpathpng($small,$filename);
break;
case 6:
p_w_picpathwbmp($small,$filename);
break;
default:
return false;
}
}
}
$img=new p_w_picpath();
echo $img->create_img(ROOT.'feng.png');
php中封装一个缩略图生成类
精选 转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
封装一个工具类,拒绝重复代码!
封装一个工具类,拒绝重复代码!
List 字段 工具类 -
PHP生成缩略图(3)--封装类
前台php代码 后台php代码
PHP php 文件名 php代码 -
【PHP缩略图类】手机照片不能生成缩略图问题以及解决方式php 扩展名 初始化 目标文件 问题分析