phpBB3创建webp格式图片缩略图方法
发表于 : 2021-01-31 13:33
平台:php 8.0.1,phpBB3 3.3.3
事先搞定了webp格式的上传和显示,但一直不能创建缩略图,导致用了更先进的图片格式,反而显示更慢。经过很吃力的摸索,发现了一个办法,现共享如下:
进入phpBB3目录下的includes目录,打开functions_posting.php文件,找到 Return supported image types这一段,加上红字部分。
事先搞定了webp格式的上传和显示,但一直不能创建缩略图,导致用了更先进的图片格式,反而显示更慢。经过很吃力的摸索,发现了一个办法,现共享如下:
进入phpBB3目录下的includes目录,打开functions_posting.php文件,找到 Return supported image types这一段,加上红字部分。
找到function create_thumbnail($source, $destination, $mimetype)这一段,加上红字部分。case IMAGETYPE_PNG:
$new_type = ($format & IMG_PNG) ? IMG_PNG : false;
break;
// WBMP
case IMAGETYPE_WBMP:
$new_type = ($format & IMG_WBMP) ? IMG_WBMP : false;
break;
// WEBP
case IMAGETYPE_WEBP:
$new_type = ($format & IMG_WEBP) ? IMG_WEBP : false;
break;
case IMG_JPG:
@ini_set('gd.jpeg_ignore_warning', 1);
$image = @imagecreatefromjpeg($source);
break;
case IMG_PNG:
$image = @imagecreatefrompng($source);
break;
case IMG_WBMP:
$image = @imagecreatefromwbmp($source);
break;
case IMG_WEBP:
$image = @imagecreatefromwebp($source);
break;
最后再清空一下缓冲就可以实现新上传webp图片展示缩略图了。此法乃老夫独自发现,网上搜不到只言片语,算得上是老夫原创,容我得瑟一下。case IMG_PNG:
imagepng($new_image, $destination);
break;
case IMG_WBMP:
imagewbmp($new_image, $destination);
break;
case IMG_WEBP:
imagewebp($new_image, $destination);
break;