封装的方法函数:
<?php/*** 生成缩略图* $imgSrc 图片源路径* $thumbWidth 缩略图宽度* $thumbHeight 缩略图高度* $thumbSrc 缩略图路径* $isCut 是否剪切图片*/function createThumbImg($imgSrc, $thumbWidth, $thumbHeight, $thumbSrc, $isCut = false) {//1.获取图片的类型$type = substr(strrchr($imgSrc, \".\"), 1);//2.初始化图象if ($type == \"jpg\" || $type == \"jpeg\") {//创建一块画布,并从JPEG文件或URL地址载入一副图像$sourceImg = imagecreatefromjpeg($imgSrc);}elseif ($type == \"gif\") {//创建一块画布,并从GIF文件或URL地址载入一副图像$sourceImg = imagecreatefromgif($imgSrc);}elseif ($type == \"png\") {//创建一块画布,并从PNG文件或URL地址载入一副图像$sourceImg = imagecreatefrompng($imgSrc);}elseif ($type == \"wbmp\") {//创建一块画布,并从WBMP文件或URL地址载入一副图像$sourceImg = imagecreatefromwbmp($imgSrc);}//取得图像宽度$width = imagesx($sourceImg);//取得图像高度$height = imagesy($sourceImg);//3.生成图象//缩略图的图象比例$scale = ($thumbWidth) / ($thumbHeight);//源图片的图象比例$ratio = ($width) / ($height);if (($isCut) == 1) {//高度优先if ($ratio >= $scale) {//创建真彩图像资源(imagecreatetruecolor()函数使用GDLibrary创建新的真彩色图像)$newimg = imagecreatetruecolor($thumbWidth, $thumbHeight);//图像处理imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, (($height) * $scale), $height);//以JPEG格式将图像输出到浏览器或文件ImageJpeg($newimg, $thumbSrc);}//宽度优先if ($ratio < $scale) {$newimg = imagecreatetruecolor($thumbWidth, $thumbHeight);imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, (($width) / $scale));ImageJpeg($newimg, $thumbSrc);}} else {if ($ratio >= $scale) {$newimg = imagecreatetruecolor($thumbWidth, ($thumbWidth) / $ratio);imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, ($thumbWidth) / $ratio, $width, $height);ImageJpeg($newimg, $thumbSrc);}if ($ratio < $scale) {$newimg = imagecreatetruecolor(($thumbHeight) * $ratio, $thumbHeight);imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, ($thumbHeight) * $ratio, $thumbHeight, $width, $height);ImageJpeg($newimg, $thumbSrc);}}//销毁图像ImageDestroy($sourceImg);}?>
调用示例:
<?php//图片源路径$imgSrc=\"D:/PHP/test/demo.jpg\";//缩略图路径$thumbSrc=\"D:/PHP/test/thumb.jpg\";createThumbImg($path,100,100,$thumbSrc);?>
到此这篇关于PHP生成缩略图实例讲解的文章就介绍到这了,更多相关PHP生成缩略图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- ThinkPHP菜单无极分类实例讲解
- Thinkphp自定义美化success和error提示跳转页面代码实例
- PHP随机生成18位不重复的订单号代码实例
- PHP上传目录禁止执行php文件实例讲解