这篇文章主要介绍了PHP生成缩略图实例讲解,文章列举了实例代码,有正好需要的同学可以借鉴下。

 

封装的方法函数:

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

 

 

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » PHP生成缩略图实例讲解

发表评论

  • 1810本站运营(天)
  • 1949会员数(个)
  • 5310资源数(个)
  • 1287评论数(个)
  • 0 近 30 天更新(个)
加入 VIP