Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die gleiche Skalierung und lädt Bilder hoch

PHP implementiert die gleiche Skalierung und lädt Bilder hoch

小云云
小云云Original
2018-03-27 16:35:431600Durchsuche


Manchmal sind die Bilder beim Hochladen von Bildern zu groß, was nicht nur Platz beansprucht und Datenverkehr verbraucht, sondern auch das Surfen beeinträchtigt (die Größen der Bilder variieren). Lassen Sie uns eine Methode zum Skalieren von Bildern in gleichen Proportionen ohne Verzerrung vorstellen. Auf diese Weise wird das hochgeladene Bild automatisch auf den von uns festgelegten Größenwert komprimiert. Getestet und praxiserprobt.

function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
 {
  $pic_width = imagesx($im);
  $pic_height = imagesy($im);
 
  if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))
  {
   if($maxwidth && $pic_width>$maxwidth)
   {
    $widthratio = $maxwidth/$pic_width;
    $resizewidth_tag = true;
   }
 
   if($maxheight && $pic_height>$maxheight)
   {
    $heightratio = $maxheight/$pic_height;
    $resizeheight_tag = true;
   }
 
   if($resizewidth_tag && $resizeheight_tag)
   {
    if($widthratio<$heightratio)
     $ratio = $widthratio;
    else
     $ratio = $heightratio;
   }
 
   if($resizewidth_tag && !$resizeheight_tag)
    $ratio = $widthratio;
   if($resizeheight_tag && !$resizewidth_tag)
    $ratio = $heightratio;
 
   $newwidth = $pic_width * $ratio;
   $newheight = $pic_height * $ratio;
 
   if(function_exists("imagecopyresampled"))
   {
    $newim = imagecreatetruecolor($newwidth,$newheight);//PHP系统函数
      imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数
   }
   else
   {
    $newim = imagecreate($newwidth,$newheight);
      imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
   }
 
   $name = $name.$filetype;
   imagejpeg($newim,$name);
   imagedestroy($newim);
  }
  else
  {
   $name = $name.$filetype;
   imagejpeg($im,$name);
  }
 }
//使用方法:
$im=imagecreatefromjpeg("./20140416103023202.jpg");//参数是图片的存方路径
$maxwidth="600";//设置图片的最大宽度
$maxheight="400";//设置图片的最大高度
$name="123";//图片的名称,随便取吧
$filetype=".jpg";//图片类型
resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//调用上面的函数

Das obige ist der detaillierte Inhalt vonPHP implementiert die gleiche Skalierung und lädt Bilder hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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