Rumah > php教程 > php手册 > teks badan

php等比例压缩图片(jpg,jif,png图片等比例压缩)

WBOY
Lepaskan: 2016-06-06 19:46:10
asal
1310 orang telah melayarinya

?php/*+-----------------------------------------------------------------------+*//*+ jpg,jif,png 图片 等 比例 压缩 +*//*+-----------------------------------------------------------------------+*/class RarImag{/** * 得到等 比例 缩放的长宽 *

 <p><?php /*+-----------------------------------------------------------------------+*/
/*+ jpg,jif,png<strong><strong>图片</strong>等<strong><strong>比例</strong></strong><strong><strong>压缩</strong></strong>                                             +*/
/*+-----------------------------------------------------------------------+*/
class RarImag{
 /**
  * 得到等<strong><strong>比例</strong></strong>缩放的长宽
  */
 function getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight) {
  if($srcWidth > $maxWidth) {
   $maxWidth = $maxWidth;
   if($srcHeight > $maxHeight) {
    $maxHeight = ($srcHeight/$srcHeight) * $maxWidth;
   } else {
     $maxHeight = $srcHeight;
   }
   return array('width' => $maxWidth,'height' => $maxHeight);
  } 
  
  if($srcHeight > $maxHeight) {
   $maxHeight = $maxHeight;
   if($srcWidth > $maxWidth) {
     $maxWidth = ($srcWidth/$srcHeight) * $maxHeight;
   } else {
     $maxWidth = $srcWidth;
   }
   return array('width' => $srcWidth,'height' => $maxHeight);
  } 
  
  return array('width' => $srcWidth,'height' => $srcHeight);</p><p> }
 /**
  * 等<strong><strong>比例</strong></strong>生成缩略图
  *
  * @param  String  $srcFile  原始文件路径
  * @param  String  $dstFile  目标文件路径
  * @param  Integer  $maxWidth  生成的目标文件的最大宽度
  * @param  Integer  $maxHeight  生成的目标文件的最大高度
  * @return  Boolean  生成成功则返回true,否则返回false
  */
 function makeThumb($srcFile, $dstFile, $maxWidth, $maxHeight) {
  if ($size = getimagesize($srcFile)) {
   $srcWidth = $size[0];
   $srcHeight = $size[1];
   $mime = $size['mime'];</p><p>   switch ($mime) {
    case 'image/jpeg';
     $isJpeg = true;
     break;
    case 'image/gif';
     $isGif = true;
     break;
    case 'image/png';
     $isPng = true;
     break;
    default:
     return false;
     break;
   }
   //header("Content-type:$mime");
   $arr = $this->getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight);
   $thumbWidth = $arr['width'];
   $thumbHeight = $arr['height'];
   if (isset($isJpeg) && $isJpeg) {
    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);
    $srcPic = imagecreatefromjpeg($srcFile);
    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
    imagejpeg($dstThumbPic, $dstFile, 100);
    imagedestroy($dstThumbPic);
    imagedestroy($srcPic);
    return true;
   } elseif (isset($isGif) && $isGif) {
    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);
    //创建透明画布
    imagealphablending($dstThumbPic, true);
    imagesavealpha($dstThumbPic, true);
    $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);
    imagefill($dstThumbPic, 0, 0, $trans_colour);</p><p>    $srcPic = imagecreatefromgif($srcFile);
    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
    imagegif($dstThumbPic, $dstFile);
    imagedestroy($dstThumbPic);
    imagedestroy($srcPic);
    return true;
   } elseif (isset($isPng) && $isPng) {
    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);
    //创建透明画布
    imagealphablending($dstThumbPic, true);
    imagesavealpha($dstThumbPic, true);
    $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);
    imagefill($dstThumbPic, 0, 0, $trans_colour);</p><p>    $srcPic = imagecreatefrompng($srcFile);
    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
    imagepng($dstThumbPic, $dstFile);
    imagedestroy($dstThumbPic);
    imagedestroy($srcPic);
    return true;
   } else {
    return false;
   }
  } else {
   return false;
  }
 }
}
?></p>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!