zoukankan      html  css  js  c++  java
  • PHP等比例生成缩略图

    /**
    	* 生成缩略图
    	* $imgSrc			图片源路径
    	* $resize_width		图片宽度
    	* $resize_height	图片高度
    	* $dstimg			缩略图路径
    	* $isCut			是否剪切图片
    	*/
    	public function reSizeImg($imgSrc, $resize_width, $resize_height, $dstimg, $isCut = false) {
            //图片的类型
            $type = substr(strrchr($imgSrc, "."), 1);
            //初始化图象
            if ($type == "jpg" || $type == "jpeg") {
                $im = imagecreatefromjpeg($imgSrc);
            }
            if ($type == "gif") {
                $im = imagecreatefromgif($imgSrc);
            }
            if ($type == "png") {
                $im = imagecreatefrompng($imgSrc);
            }
     
            $width = imagesx($im);
            $height = imagesy($im);
     
            //生成图象
            //改变后的图象的比例
            $resize_ratio = ($resize_width) / ($resize_height);
            //实际图象的比例
            $ratio = ($width) / ($height);
            if (($isCut) == 1) {
                if ($ratio >= $resize_ratio) { 
    				//高度优先
                    $newimg = imagecreatetruecolor($resize_width, $resize_height);
                    imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height);
                    ImageJpeg($newimg, $dstimg);
                }
                if ($ratio < $resize_ratio) { 
    				//宽度优先
                    $newimg = imagecreatetruecolor($resize_width, $resize_height);
                    imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));
                    ImageJpeg($newimg, $dstimg);
                }
            } else {
                if ($ratio >= $resize_ratio) {
                    $newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);
                    imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);
                    ImageJpeg($newimg, $dstimg);
                }
                if ($ratio < $resize_ratio) {
                    $newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);
                    imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);
                    ImageJpeg($newimg, $dstimg);
                }
            }
            ImageDestroy($im);
        }
    

      

  • 相关阅读:
    远程连接Ubuntu中的MySQL
    以API 配置的方式来配置你的 Dubbo 应用
    jdk1.8:stream流式分组groupby
    springboot如何通过apollo动态去注册dubbo服务
    JDK动态代理[3]WeakCache缓存的实现机制
    Linq 交集、并集等集合理论学习
    Build my first Blazor app
    关于
    MySql数据库优化维度
    面霸篇:Java 集合容器大满贯(卷二)
  • 原文地址:https://www.cnblogs.com/lovekingly/p/8656703.html
Copyright © 2011-2022 走看看