网站制作学习网PHP→正文:php按比例压缩剪切图片
字体:

php按比例压缩剪切图片

PHP 2010/3/5 17:37:59  点击:不统计

http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E

php用GD库通过图片函数函数来实现按比例压缩剪切图片,并通过函数的形式写出来,供大家使用,转载请注明来源www.forasp.cn,网站制作学习网
<?php
//php通过代码来按比例压缩剪切图片
//$filename,表示源文件名称,
//方式$type,1表示按宽高比例,2表示按数字比例比如0.5缩小到原来的二分之一
//$bili如果按数字比例的,默认0.5
//$mwidth="100",$mheight="100",表示默认的宽和高,如果按照宽高比,默认都为100,默认宽高比1
//$rename是否重命名,1否,2是,如果是2$tname表示重命名后的名字,默认为temp
//$clear_type = 1,是否清晰,1默认是,2不是
//$mfilename是压缩后的图片名称
function php_cut_resize($filename,$type="1",$bili="0.5",$mwidth="100",$mheight="100",$rename="1",$tname="temp",$clear_type="1")
{
//首先判断是否安装GD库
if(!function_exists("imagejpeg"))
{echo "没有安装GD库";die();}
//获取图片后缀名
if($rename=="2")
{
$filename_arr=explode('.',$filename);
$end_Name=array_pop($filename_arr);
$mfilename=$tname.$end_Name;
}
else
{
$mfilename = $filename;
}
//已经获取了最后的图片名,然后通过判断压缩方式获得剪切后的宽$mwidth高$height,首先获取原图片的宽$width高$height
$data = getimagesize($filename);
$width=$data[0];
$height=$data[1];

//获取剪切后的图片的宽和高
if($type=="1")//按宽高比例压缩剪切图片
{
$w_bili = $mwidth/$width;
$h_bili = $mheight/$height;
$fact_bili = min($w_bili,$h_bili);//查找出最大比例,是按照那种(高或宽)比例
$mwidth = ceil($fact_bili*$width);
$mheight = ceil($fact_bili*$height);
}
else//如果是按照数字比例.
{
$mwidth = $bili*$width;
$mheight = $bili*$height;
}
//获取宽高完毕,创建新的图片imagecreatetruecolor()返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
$thumb = imagecreatetruecolor($mwidth, $mheight);
//获取原来图片类型,然后创建对应的图片类型.
switch ($data[2])
{
case 1:
$source = ImageCreateFromGIF($filename);
break;
case 2:
$source = ImageCreateFromJpeg($filename);
break;
case 3:
$source = ImageCreateFromPNG($filename);
break;
default:
return;
}
if($clear_type=="1")
{
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $mwidth, $mheight, $width, $height);
}
else
{
imagecopyresized($thumb, $source, 0, 0, 0, 0, $mwidth, $mheight, $width, $height);
}
switch ($data[2])//根据格式创建不同的格式图片
{
case 1:
imagegif($thumb,$mfilename);
break;
case 2:
imagejpeg($thumb,$mfilename);
break;
case 3:
imagepng($thumb,$mfilename);
break;
}
}
php_cut_resize("3.gif");//操作php通过代码按比例压缩图片
?>
www.forasp.cn原创,转载请注明


·上一篇:PHP实现图片划直线imageline >>    ·下一篇:PHP购物车类(转) >>
推荐文章
最新文章