欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中图片的缩放比例

程序员文章站 2022-05-07 20:27:07
...
 在图片保存中,我们不必在ps或其他工具来修改图片,我们也可以用代码来实现。下面举两例子,效果相同:

$sourcefile="images/1.jpg";//旧图路径
$dstfile="images/1_small.jpg";//新图路径
$arr=getimagesize($sourcefile);//获取图片缩放比例,这样我们不必再在目录下去查找图片属性的宽高了。

//$src_width="144";
$src_height="200";也可自定义缩放比例但过大图片会失真

$scle=0.5;//比例系数
$dst_width=ceil($arr[0]*$scle);
$dst_width=ceil($arr[1]*$sclie);//新图宽高
$dst_img=imagecreatetruecolor($dst_width,$dst_height);//载入新图
$src_img=imagecreatefromjpeg($sourcefile);//载入旧图
imagecopyresampled($dst_img,$src_img,0,0,0,0$dst_width,$dst_height,$src_width,$src_height);//输出图像
imagejpeg($dst_img,$dstfile);//新图,路径
imagedestroy($dst_img);
imagedestroy($src_img);//销毁图片

?>

 

class Zoom{
private $srcImg;//原图地址
private $scle;//缩放系数
public function __construct($a $b){
$this->srcImg=$a;
$this->scle=$b;
list($src_w $src_h)=getimagesize($this->srcImg);
$dst_w=ceil($src_w*$this->scle);
$dst_h=ceil($src_h*$this->scle);
$arr=explode("."$this->srcImg);
$ext=end($arr);
if($ext=="jpg"){
$src_img=imagecreatefromjpeg($this->srcImg);
}else if($ext=="gif"){
$src_img=imagecreatefromgif($this->srcImg);
}else if($ext=="png"){
$src_img=imagecreatefrompng($this->srcImg);
}else{
echo "请选择jpg、png、gif图片格式";
exit;
}
$dstImg=$arr[0].$this->scle."_small".".".$ext;
$dst_img=imagecreatetruecolor($dst_w$dst_h);
imagecopyresampled($dst_img$src_img0000$dst_w$dst_h$src_w$src_h);
if($ext=="jpg"){
imagejpeg($dst_img$dstImg);
}else if($ext=="gif"){
imagegif($dst_img$dstImg);
}else if($ext=="png"){
imagepng($dst_img$dstImg);
}
imagedestroy($src_img);
imagedestroy($dst_img);
}
}
$image="imgs/a.jpg";
$b=1;
$i=new Zoom($image$b);
?>