PHP缩略图的生成

38 篇文章 0 订阅

按照百分比来生成

// 指定文件路径和缩放比例
$filename = 'images/1.jpg';
$percent = 0.5;
// 指定头文件Content typezhi值
header('Content-type: image/jpeg');
// 获取图片的宽高
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
//创建一个图片。接收参数分别为宽高,返回生成的资源句柄
$thumb = imagecreatetruecolor($newwidth, $newheight);
//获取源文件资源句柄。接收参数为图片路径,返回句柄
$source = imagecreatefromjpeg($filename);
// 将源文件剪切全部域并缩小放到目标图片上。前两个为资源句柄
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// 输出给浏览器
imagejpeg($thumb,'images/thumb_1.jpg'); //images/thumb_1.jpg 为保存的文件路径和名称


根据高度和宽度计算获取

// 文件路径
$filename = 'images/1.jpg';
// 最大宽高
$width = 200;
$height = 200;
// 设置http头Content type值
// 获取图片宽高
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig))
{ //高比宽大,高为200,kuan宽按比例缩小
$width = ($height / $height_orig) * $width_orig;
}else {
$height = ($width / $width_orig) * $height_orig;
}
// 改变大小。和上例一样。
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Output
imagejpeg($image_p,'images/thumb_2.jpg'); //images/thumb_2.jpg 为保存的文件路径和名称


缩略图生成的函数表示形式

function thumb($fileName,$w,$h){
    // 文件路径
    $filename = 'images/'.$fileName;
    // 最大宽高
    $width = $w;
    $height = $h;
    // 设置http头Content type值
    // 获取图片宽高
    list($width_orig, $height_orig) = getimagesize($filename);
    if ($width && ($width_orig < $height_orig))
    { //高比宽大,高为200,kuan宽按比例缩小
    $width = ($height / $height_orig) * $width_orig;
    }else {
    $height = ($width / $width_orig) * $height_orig;
    }
    // 改变大小。和上例一样。
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    // Output
    imagejpeg($image_p,'images/thumb_'.$fileName); //images/thumb_2.jpg 为保存的文件路径和名称    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值