php缩略图代码,实现满窗格等比例缩小

发布时间:2020-11-30编辑:脚本学堂
本文介绍下,一个php缩图图的实现挖出,满窗格后即可等比例缩小,有需要的朋友,参考下吧。

本缩略图实现的功能如下:
 

1,等比例缩小
2,必须是规定的缩略图大小
3,原图可以裁剪但需要中心点在窗口

代码如下:
 

复制代码 代码示例:
<?php
/**
* 等比例缩小的缩略图
* edit www.jb200.com
*/
    function thumbs($FileName,$SaveTo,$SetW,$SetH){
        $IMGInfo= getimagesize($FileName);
        if(!$IMGInfo) return false;      
        if($IMGInfo[mime]== "image/pjpeg" || $IMGInfo[mime]=="image/jpeg"){
            $ThisPhoto= imagecreatefromjpeg($FileName);
        }elseif($IMGInfo[mime]== "image/x-png" || $IMGInfo[mime]== "image/png"){
            $ThisPhoto= imagecreatefrompng($FileName);  
        }elseif($IMGInfo[mime]== "image/gif"){
            $ThisPhoto=imagecreatefromgif($FileName);
        }
        $width=$IMGInfo[0];
        $height=$IMGInfo[1];  
        $scalc = max($width/$SetW,$height/$SetH);
        $nw = intval($width/$scalc);
        $nh = intval($height/$scalc);
        echo "缩略大小:w$nw,h$nh <br />";
        if($SetW-$nw == 1){$nw = $SetW;}
        if($SetH-$nh == 1){$nh = $SetH;}
        echo "+修正1像素: w$nw,h$nh<br />";
        //补宽
        if($SetW-$nw > 0){
            $nh = $nh +(($nh/$nw) * ($SetW-$nw));
            echo "*需补宽".($SetW-$nw).",陪补高".(($nh/$nw) * ($SetW-$nw))."  <br />"; 
            $nw = $SetW;
        }
        //补高
        if($SetH-$nh > 0){
            $nw = $nw + (($nw/$nh) * ($SetH-$nh));
            echo "*需补高".($SetH-$nh).",陪补宽". (($nw/$nh) * ($SetH-$nh)) ."<br />";
            $nh = $SetH;
        }
        
        $nw = intval($nw);
        $nh = intval($nh);
        echo "+修正大小:w$nw,h$nh<br />";
        $px = ($SetW - $nw)/2;
        $py = ($SetH - $nh)/2;
        echo "窗口大小:w$SetW,h$SetH <br />";
        echo "+偏移修正:x$px,y$py <br />";
        $NewPhoto=imagecreatetruecolor($SetW,$SetH);
        imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height);
        ImageJpeg ($NewPhoto,$SaveTo);
        return true;
    }
    thumbs('a.jpg','newa.jpg',150,70);
?>

2,css代码部
 

复制代码 代码示例:
<style>
    img{ border:1px solid #ccc;margin:2px;}
</style>

3,html页面中的图片地址
 

复制代码 代码示例:
<img src="/a.jpg"  />
<img src="/newa.jpg" />