麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
刚写生成缩略图类,热烈欢迎大家拍砖..[原创]
悬赏分:20 - 2007年08月22日

[php]
<?php
/*-------------------------------------------
* 功 能:生成图片的缩略图
* 时 间:2006-8-10
* 作 者:刀鱼

---------------------------------------------*/
class image
{
var $src = ''; //原图片地址
var $dst = ''; //目标图片标示
var $dst_file = ''; //目标图片文件地址
var $dst_width = 0; //目标最大宽度
var $dst_height = 0; //目标最大高度
var $mode = 0; //是否显示(0显示,1不显示)
var $exe = ''; //配置新的文件名例如源文件名是:mm.jpg 可以将其配置成plmm.jpg/gg_mm.jpg
function resize_image($src,$dst_width,$dst_height,$exe='',$mode = 0)
{
$this->src = $src;
$this->dst_width = $dst_width;
$this->dst_height = $dst_height;
$this->exe = $exe;
$this->mode = $mode;
$width = $this->get_msg($this->src,0);
$height = $this->get_msg($this->src,1);
$src_h = $this->get_msg($this->src,2);//return:resouse 返回图象标示符
$size = $this->resize($this->src,$this->dst_width,$this->dst_height);
$this->dst = @imagecreatetruecolor($size[x],$size[y]);
$bool = @imagecopyresized($this->dst,$src_h,0,0,0,0,$size[x],$size[y],$width,$height);
$new_file = $this->exe.basename($this->src);
if($bool)
{
if(isset($mode) && $mode == 0)
{
switch ($this->get_msg($src,3))
{
case 1:
return imagegif($this->dst);
break;
case 2:
return imagejpeg($this->dst);
break;
case 3:
return imagepng($this->dst);
break;
}
}
else
{
switch ($this->get_msg($src,3))
{
case 1:
return imagegif($this->dst,$new_file);
break;
case 2:
return imagejpeg($this->dst,$new_file);
break;
case 3:
return imagepng($this->dst,$new_file);
break;
}
}
}
else
{
echo "拷贝图象并调整大小过程出错啦~";
}
}
/* $src 源图片的地址
* $fetch 获取类型 0 获取image width 1 获取image height 2 获取image 3获取type
*/

function get_msg($src, $fetch = 0)
{
$data = @getimagesize($src);
switch ($fetch)
{
case 0:
$width = $data[0];
return $width;
break;
case 1:
$height = $data[1];
return $height;
break;
case 2:
switch ($data[2])
{
case 1:
$dst = imagecreatefromgif($src);
return $dst;
break;
case 2:
$dst = imagecreatefromjpeg($src);
return $dst;
break;
case 3:
$dst = imagecreatefrompng($src);
return $dst;
break;
}
case 3:
return $data[2];
break;

}
}
function resize($src,$dst_width,$dst_height)
{
$this->src = $src;
$this->dst_width = $dst_width;
$this->dst_height = $dst_height;
$width = $this->get_msg($src,0);
$height = $this->get_msg($src,1);
if($this->dst_width && $width > $this->dst_width )
{
$resize_width = 1;
$width_ratio = $this->dst_width/$width;
}
if($this->dst_height && $height > $this->dst_height)
{
$resize_height = 1;
$height_ratio = $this->dst_height/$height;
}
if($resize_height && $resize_width)
{
//宽度优先
if($width_ratio < $height_ratio)
{
$size[x] = $width * $width_ratio;
$size[y] = $height * $width_ratio;
return $size;
}
//高度优先
else
{
$size[x] = $width * $height_ratio;
$size[y] = $height * $height_ratio;
return $size;
}
}
elseif($resize_height)
{
$size[x] = $width;
$size[y] = $height * $height_ratio;
return $size;
}
elseif($resize_width)
{
$size[x] = $width * $width_ratio;
$size[y] = $height;
return $size;
}
}
}
?>
[/php]

[ 本帖最后由 刀鱼 于 2006-8-14 01:28 PM 编辑 ]

提问者:刀鱼   08-22 09:09
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
48 + 63 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM