php 缩略图封装的方法
/**
* PHP生成缩略图
* @param $basepath /原文件地址
* @param $des_w /缩略图的宽
* @param $des_h /缩略图的高
* @param $style /规则名称
* @param $line /连接符
* @param int $save / 展示方式 0展示缩略图(默认) 1保存缩略图
* @return string
*/
function thumb($basepath, $des_w, $des_h, $style, $line, $save = 0)
{
if(!file_exists($basepath)) {
return 'file not exists';
}
$fileExt = substr(basename($basepath), strrpos(basename($basepath), '.'));
$file = basename(basename($basepath), $fileExt);
$fileinfo = getimagesize($basepath);
$src_w = $fileinfo[0];
$src_h = $fileinfo[1];
$type = $fileinfo[2];
$type_array = [1=> 'gif', 2=> 'jpeg', 3=> 'png'];
$type_str = $type_array[$type];//jpeg
$fun_str = 'imagecreatefrom';
$function = $fun_str.$type_str;//imagecreatefromjpeg
//原图片资源
$src_img = $function($basepath);
$srcAvg = round($src_w / $src_h, 1);
if($des_h == 0 && $des_w != 0) {
//固定宽
$des_width = $des_w;
$des_height = round($des_w / $srcAvg);
} elseif ($des_w == 0 && $des_h != 0) {
//固定高
$des_height = $des_h;
$des_width = round($des_height * $srcAvg);
} elseif ($des_w == 0 && $des_h == 0) {
//原图
$des_width = $src_w;
$des_height = $src_h;
} elseif ($des_w != 0 && $des_h != 0) {
$des_width = $des_w;
$des_height = $des_h;
}
$des_img = imagecreatetruecolor($des_width, $des_height);
imagecopyresampled($des_img, $src_img, 0, 0, 0, 0, $des_width, $des_height, $src_w, $src_h);
$thumb = 'image'.$type_str;//imagejpeg
if($save) {
//保存缩略图
$filename = dirname($basepath) . '/' . $file.$line.$style.$fileExt;//保存
$thumb($des_img, $filename);
} else {
header('Content-type: image/'. $type_str .'');
$thumb($des_img);//展示图片
}
imagedestroy($des_img);
imagedestroy($src_img);
if($save) {
return $filename;
} else {
return true;
}
}
分类:
php
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧