thinkphp

thinkcmf5 生成缩略图


2019年03月07日 10:36:33  阅读数 339

该方法是使用thinkphp框架自带的生成缩略图方法,把生成的缩略图根据定义的宽高各自存放。如果存在相同宽高、名称的缩略图,则不再生成新的缩略图。

1.在public\upload\里添加文件夹thumbnail来存放缩略图。

2.在\simplewind\cmf\common.php 的最后添加以下代码:

/*** 生成缩略图 (不替换原图)* @param $img  原图路径  路径格式: admin/20180101/xxxxxxx.png* @param int $width  宽度* @param int $height  高度* @return string  返回可访问的图片路径*/
function thumb($img,$width = 500,$height = 500){ini_set('memory_limit','300M');    //防止内存溢出(如果图片分辨率太高可能出现内存溢出)
if(empty($img)){return '';}
if (strpos($img, "http") === 0) 
{return $img;}$array = explode('/',$img);if(count($array) != 3){return cmf_get_image_url($img);}$img_name = $array[2]; //获取图片名称//如果原图已丢失if(!file_exists("./upload/$img")){return '';}if(is_dir("./upload/thumbnail/$width$height")){if(file_exists("./upload/thumbnail/$width$height/$img_name")) {//图片缩略图已存在return cmf_get_image_url("thumbnail/$width$height/$img_name");}else{//生成缩略图$image = \think\Image::open(ROOT_PATH."/public/upload/$img");$image->thumb($width, $height)->save("./upload/thumbnail/$width$height/$img_name",null,100);return cmf_get_image_url("thumbnail/$width$height/$img_name");}}else{mkdir("./upload/thumbnail/$width$height");  
//创建文件夹//生成缩略图
$image = \think\Image::open("./upload/$img");$image->thumb($width, $height)->save("./upload/thumbnail/$width$height/$img_name",null,100);return cmf_get_image_url("thumbnail/$width$height/$img_name");}}

html调用例子: {:thumb($vo.thumbnail,600,600)}

https://blog.csdn.net/qq_39197402/article/details/82258763

联系我们

13823142866

在线咨询: 点击这里给我发消息

邮件:chawuzhai@163.com

工作时间:周一至周五,8:30-18:30,节假日休息

QR code