缩略图实现思路

缩略图的主要是先思路如下


<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/5/27
 * Time: 14:49
 */

//公共函数库
/**
 *
 *等比缩放函数(以保存的方式实现)
 *
 * @param  string $picname 被锁放的处理图片源
 * @param  int $maxx 缩放后 图片的最大宽度
 * @param  int $maxy 缩放后图片的最大高度
 * @param  string $pre 缩放后的图片名的前缀
 * @return String 个返回后的图片名称 ,如 a.jpg=>s_a.jpg
 */

header("content-type:text/html;charset=utf-8");

//首先封装一个类 类里定义 的参数  上面有注释

function ImageUpdateSize($picname,$maxx=100,$maxy=100,$pre="s_")
{
//获取图片文件的宽高,赋予变量值;
   $info = getimagesize($picname);
    $w = $info[0];/*获取宽度*/
    $h = $info[1];/*获取高度*/


//    获取图片的类型并为此 创建对应的图片资源
    switch ($info[2]) {
        case 1:/*gif*/
            $im = imagecreatefromgif($picname);

        case  2:/*jpg*/
            $im = imagecreatefromjpeg($picname);
            break;
        case  3:/*png*/
            $im = imagecreatefrompng($picname);
            break;
        default:
            die("图片类型错误!");

    }

//    计算缩放比例
    if (($maxx / $w) > ($maxy / $w)) {
        $b = $maxy / $w;
    } else {
        $b = $maxx / $w;
    }
//    echo $b;
//      计算缩放后的尺寸
    $nw = floor($w * $b);
    $nh = floor($h * $b);

//    创建一个新的图像源(目标图像)
    $nim = imagecreatetruecolor($nw, $nh);

//    执行等比例缩放
    imagecopyresampled($nim, $im, 0, 0, 0, 0, $nw, $nh, $w, $h);
//    输出图像(根据源图像的类型,输出为对应的类型)
    $picinfo = pathinfo($picname); /*解析源文件的路径信息*/
    $newpicname = $picinfo['dirname'] . "/" . $pre . $picinfo['basename'];
    switch ($info[2]) {
        case 1 :
            imagegif($nim, $newpicname);
            break;
        case 2 :
            imagejpeg($nim, $newpicname);
            break;
        case 3 :
            imagepng($nim, $newpicname);
            break;
    }
//释放图片资源
    imagedestroy($im);
    imagedestroy($nim);

//    返回结果

    return $newpicname;

}

echo ImageUpdateSize('./image/picture.jpg',200,200,"ss_"); //
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值