Heim  >  Artikel  >  Backend-Entwicklung  >  php等比例缩放图片的示例参考

php等比例缩放图片的示例参考

WBOY
WBOYOriginal
2016-07-25 08:58:04847Durchsuche
本文介绍下,在制作头像功能时,实现的一段等比例绽放图片的php代码,有需要的朋友参考下。

以下是以前做头像处理程序时写的一段代码。

实现: 上传一张图片,然后保存成大头像,再就是将其缩小保存为小头像。

具体代码如下:

<?php
/**
* 等比例绽放图片大小
* edit by bbs.it-home.org
*/
public function drawImg($from,$w=100,$h=100,$newfile){
  $info = getimagesize($from);
  switch ($info[2]){
  case 1:
  $im = imagecreatefromgif($from);
     break;
     case 2:
  $im = imagecreatefromjpeg($from);
  break;
     case 3:
  $im = imagecreatefrompng($from);
  break;
     default:
  exit('不支持的图像格式');
     break;
 }
 $temp = pathinfo($from);
 $name = $temp["basename"];//文件名
 $dir = $temp["dirname"];//文件所在的文件夹
 $extension = $temp["extension"];//文件扩展名
 $width = $info[0];//获取图片宽度
 $height = $info[1];//获取图片高度
 $per1 = round($width/$height,2);//计算原图长宽比
 $per2 = round($w/$h,2);//计算缩略图长宽比
 //计算缩放比例
 if($per1>$per2||$per1==$per2)
 {
     //原图长宽比大于或者等于缩略图长宽比,则按照宽度优先
     $per=$w/$width;
 }
 if($per1<$per2)
 {
     //原图长宽比小于缩略图长宽比,则按照高度优先
     $per=$h/$height;
 }
 $temp_w = intval($width*$per);//计算原图缩放后的宽度
 $temp_h = intval($height*$per);//计算原图缩放后的高度
 $dst_im = imagecreatetruecolor($temp_w, $temp_h);
 //调整大小
 imagecopyresized($dst_im, $im, 0, 0, 0, 0, $temp_w, $temp_h, $width, $height);
 //输出缩小后的图像
 //exit($newfile);
 imagejpeg($dst_im,$dir.'/'.$newfile);
 imagedestroy($dst_im);
 imagedestroy($im);
}
?>

注意: imagejpeg()函数,前面未加后面的保存路径,一直不成功! 经测试才明白是需要添加一个保存路径!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn