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);
        }
    

      

  • 相关阅读:
    C#进阶系列——WebApi 路由机制剖析:你准备好了吗?
    Socket长连接和短连接的区别
    C#socket通信时,怎样判断socket双方是否断开连接
    Redis常见面试题
    [C# 线程处理系列]专题三:线程池中的I/O线程
    结对编程第一次作业
    软件工程第三次作业
    软件工程第二次作业
    人生中的第一篇博客
    CPU 分类
  • 原文地址:https://www.cnblogs.com/lovekingly/p/8656703.html
Copyright © 2011-2022 走看看