autoCropImage 彩旗裁切生成图片readfile加载无法显示图像

  • 时间:
  • 浏览:1333
  • 来源:无双科技

autoCropImage 是一款图片自动缩放程序基于 ThinkPHP5.1+ 的图片缩放程序,可以将图片自动缩放成指定大小,减少图片体积,从而加快下载速度,降低下载时间和成本。

使用说明

方式一:50x100 缩放成 50x100 大小
方式二:50x100m2 方式一并且使用mode 2
方式三:50x100v2014 方式一并且指定缓存版本2014
方式四:50x100m2v2014 方式一,使用mode 2并且指定缓存版本2014

缩放模式说明

mode 1 : 强制裁剪,生成图片严格按照需要,不足放大,超过裁剪,图片始终铺满。
mode 2 : 和1类似,但不足的时候 不放大 会产生补白,可以用png消除。
mode 3 : 只缩放,不裁剪,保留全部图片信息,会产生补白。
mode 4 : 只缩放,不裁剪,保留全部图片信息,此时的参数只是限制了生成的图片的最大宽高,不产生补白。
mode 5 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。

在有大量图片展示的情况下,生成的图片可以大大减少网站加载速度,不过在使用过程中发现每当第一次加载生成图片时,图片无法显示,必须强制刷新后才正常显示。

然后找到生成目录,检查文件是否存在

var_dump(file_exists($thumb));

结果:

文件也都正常生成。研究发现在图片输出时读取的图片会加载缓存当中

public function show_pic($file){     $info = getimagesize($file);   header("Content-Type: {$info['mime']}");   readfile($file);   exit();}

同时因为设置原因读取数据没有发送到客户端,所以在readfile前加上ob_clean(); flush();就可以了

public function show_pic($file){    $info = getimagesize($file);    header("Content-Type: {$info['mime']}");  ob_clean();flush();    readfile($file);    exit();}

猜你喜欢