php压缩图片

Posted 冰炏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php压缩图片相关的知识,希望对你有一定的参考价值。

<?php 
    header(‘content-type:text/html;charset=utf8‘);
    set_time_limit(0);
    $imgs=scandir(‘./Public/ueditor/php/upload/image/20160905/‘);
    $arr=array(‘1473060007677277.jpg‘,‘1473060042860033.jpg‘,‘1473060080836580.jpg‘,‘1473060121598615.jpg‘,‘1473060387209306.jpg‘,‘1473060568136526.jpg‘);
    unset($imgs[0]);unset($imgs[1]);
    foreach($imgs as $k=>$v){
        if(!in_array($v,$arr)){
            subImage(‘./Public/ueditor/php/upload/image/20160905/‘.$v);
            echo $k.‘<br/>‘;
        }
    }

    function subImage($img){
        //图片的等比缩放 

         //取得源图片的宽度和高度 
         $size_src=getimagesize($img); 
         $w=$size_src[‘0‘]; 
         $h=$size_src[‘1‘]; 
         $mime=$size_src[‘mime‘];

         //因为PHP只能对资源进行操作,所以要对需要进行缩放的图片进行拷贝,创建为新的资源 
         if($mime==‘image/jpeg‘){
            $src=imagecreatefromjpeg($img); 
         }elseif($mime==‘image/png‘){
            $src=imagecreatefrompng($img); 
         }else{
            $src=imagecreatefromgif($img); 
         }

         //指定缩放出来的最大的宽度(也有可能是高度) 
         $max=300; 
         if($w<=300&&$h<=300){return;}
         //根据最大值为300,算出另一个边的长度,得到缩放后的图片宽度和高度 
         if($w > $h){ 
             $w=$max; 
             $h=$h*($max/$size_src[‘0‘]); 
         }else{ 
             $h=$max; 
             $w=$w*($max/$size_src[‘1‘]); 
         } 
         //声明一个$w宽,$h高的真彩图片资源 
         $image=imagecreatetruecolor($w, $h); 

           
         //关键函数,参数(目标资源,源,目标资源的开始坐标x,y, 源资源的开始坐标x,y,目标资源的宽高w,h,源资源的宽高w,h) 
         imagecopyresampled($image, $src, 0, 0, 0, 0, $w, $h, $size_src[‘0‘], $size_src[‘1‘]); 

         //告诉浏览器以图片形式解析 
         header(‘content-type:image/png‘); 
         imagepng($image,$img); 

         //销毁资源 
         imagedestroy($image); 
    }

 

以上是关于php压缩图片的主要内容,如果未能解决你的问题,请参考以下文章

PHP图片压缩

PHP实现图片压缩同时保持清晰度

php图片压缩-高清晰度

PHP实现压缩文件夹内所有图片的分辨率

php分10个不同等级压缩优化图片

PHP压缩上传图片