找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1011|回复: 0
打印 上一主题 下一主题

PHP实现图片压缩的两则实例

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:56:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文介绍了PHP实现图片压缩的两种方法,读者可以根据具体应用参考或加以改进,以适应自身应用需求!废话不多说,主要代码部分如下:
实例1:
600?600width)*0.9;
  $new_height =($height>600?600height)*0.9;
  switch($type){
    case 1:
      $giftype=check_gifcartoon($);
      if($giftype){
        header('Content-Type:image/gif');
        $image_wp=imagecreatetruecolor($new_width, $new_height);
        $image = imagecreatefromgif($);
        imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
        imagejpeg($image_wp, $,75);
        imagedestroy($image_wp);
      }
      break;
    case 2:
      header('Content-Type:image/jpeg');
      $image_wp=imagecreatetruecolor($new_width, $new_height);
      $image = imagecreatefromjpeg($);
      imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
      imagejpeg($image_wp, $,75);
      imagedestroy($image_wp);
      break;
    case 3:
      header('Content-Type:image/png');
      $image_wp=imagecreatetruecolor($new_width, $new_height);
      $image = imagecreatefrompng($);
      imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
      imagejpeg($image_wp, $,75);
      imagedestroy($image_wp);
      break;
  }
}
/**
* desription 判断是否gif动画
* @param sting $image_file图片路径
* @return boolean t 是 f 否
*/
function check_gifcartoon($image_file){
  $fp = fopen($image_file,'rb');
  $image_head = fread($fp,1024);
  fclose($fp);
  return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;
}
?>
实例2:
$Dw){
   $Par=$Dw/$width;
   $width=$Dw;
   $height=$height*$Par;
   IF($height>$Dh){
   $Par=$Dh/$height;
   $height=$Dh;
   $width=$width*$Par;
   }
  }ElseIF($height>$Dh){
   $Par=$Dh/$height;
   $height=$Dh;
   $width=$width*$Par;
   IF($width>$Dw){
   $Par=$Dw/$width;
   $width=$Dw;
   $height=$height*$Par;
   }
  }Else{
   $width=$width;
   $height=$height;
  }
  $nImg = ImageCreateTrueColor($width,$height);   //新建一个真彩色画布
  ImageCopyReSampled($nImg,$Img,0,0,0,0,$width,$height,$w,$h);//重采样拷贝部分图像并调整大小
  ImageJpeg ($nImg,$Image);     //以JPEG格式将图像输出到浏览器或文件
  Return True;
  //如果是执行生成缩略图操作则
  }Else{
  $w=ImagesX($Img);
  $h=ImagesY($Img);
  $width = $w;
  $height = $h;
  $nImg = ImageCreateTrueColor($Dw,$Dh);
  IF($h/$w>$Dh/$Dw){ //高比较大
   $width=$Dw;
   $height=$h*$Dw/$w;
   $IntNH=$height-$Dh;
   ImageCopyReSampled($nImg, $Img, 0, -$IntNH/1.8, 0, 0, $Dw, $height, $w, $h);
  }Else{   //宽比较大
   $height=$Dh;
   $width=$w*$Dh/$h;
   $IntNW=$width-$Dw;
   ImageCopyReSampled($nImg, $Img, -$IntNW/1.8, 0, 0, 0, $width, $Dh, $w, $h);
  }
  ImageJpeg ($nImg,$Image);
  Return True;
  }
}
?>

上传图片

允许上传的文件类型为:

            
            
您可能感兴趣的文章:
  • 高性能WEB开发 图片压缩篇
  • css js 图片压缩批处理命令(基于YUI Compressor)
  • C#图片压缩的实现方法
  • android bitmap compress(图片压缩)代码
  • Java 图片压缩实现思路及代码
  • android图片压缩的3种方法实例
  • java实现文件上传下载和图片压缩代码示例
  • Android中3种图片压缩处理方法
  • Android图片压缩上传之基础篇
  • java图片压缩工具类
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端