首页 > 代码库 > PHP等比例生成缩略图
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); }
PHP等比例生成缩略图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。