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

    /**
    	 * 等比例生成缩略图
    	 * @param $imgSrc
    	 * @param $resize_width
    	 * @param $resize_height
    	 * @param $isCut
    	 * @author james.ou 2011-11-1
    	 */
    	public function reSizeImg($imgSrc, $resize_width, $resize_height, $isCut = false) {
    		//图片的类型
    		$type = substr(strrchr($imgSrc, "."), 1);
    		//初始化图象
    		if ($type == "jpg") {
    			$im = imagecreatefromjpeg($imgSrc);
    		}
    		if ($type == "gif") {
    			$im = imagecreatefromgif($imgSrc);
    		}
    		if ($type == "png") {
    			$im = imagecreatefrompng($imgSrc);
    		}
    		//目标图象地址
    		$full_length = strlen($imgSrc);
    		$type_length = strlen($type);
    		$name_length = $full_length - $type_length;
    		$name = substr($imgSrc, 0, $name_length - 1);
    		$dstimg = $name . "_s." . $type;
    
    		$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);
    	}
    

      

  • 相关阅读:
    android-自定义View
    java
    记录-常用的开发技巧
    便签:
    zTree 树形控件 ajax动态加载数据
    jquery ajax 传数据到后台乱码的处理方法
    spring + quartz 定时
    SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
    复制新项目 ,tomcat部署时名字还是旧项目名
    jsp 通用获取所有表单值传后台
  • 原文地址:https://www.cnblogs.com/blog-dyn/p/7127799.html
Copyright © 2011-2022 走看看