php - imagewebp 函数失败但不产生任何错误
问题描述
我想将 jpeg 图像的文件夹转换为另一个文件夹中的 webp 格式。我正在使用 GD 库中的 imagewebp 函数。当函数被调用时,代码就会停止。尽管文件实际上是创建的,但它的长度为零。没有错误被抛出。
gd_info 显示版本 2.1,支持 WebP 为 1。
php 版本 5.6
如果我更改为,一切正常,imagepng()
因此库已安装并正常工作。
我已经尝试过单个小图像,以防它是一个内存问题,但仍然有同样的问题。
还尝试了 imagecreatefromjpeg 而不是 imagecreatefromstring 但相同。
将质量过滤器删除为默认值(例如省略了 65),但效果相同。
我还尝试将单个文件直接输出到浏览器。这适用于 imagepng,但 imagewebp 出现 404 错误
$jpgfiles = glob ('jpegs/*.jpg');
echo "<p>" . sizeof( $jpgfiles ) . " files found. </p>"; // Shows 7 files
foreach($jpgfiles as $j) {
echo "<p>Found $j</p>"; // Shows first found file
$filename = substr( $j, 6, -4) . '.webp'; // Keep the same filename but change extension
echo "<p>$filename</p>";
$jpgimage = imagecreatefromstring( file_get_contents( $j ) );
if( !$jpgimage ) die ("Failed on imagecreatefromstring");
if( $webpimage = imagewebp( $jpgimage, 'webps/' . $filename, 65 )) echo "$filename created"; // This is never echo'd
else die ("Failed on imagewebp"); // Doesn't die either
imagedestroy ( $jpgimage );
}
我希望创建图像,但程序执行停止。错误日志不包含任何信息。die 命令永远不会被调用。webp 文件已创建,但长度为零。
解决方案
推荐阅读
- c++ - 可以在折叠表达式中使用宇宙飞船运算符吗?
- php - 根据数组中的日期值对数组元素进行排序
- machine-learning - keras.TimeSeriesGenerator 的长度参数
- reactjs - 如何将 props.children.some 限制为仅图像类型?
- time-complexity - is my answer of time complexity is correct , if yes then why?
- javascript - URIError:无法解码参数“/%PUBLIC_URL%/favicon.ico”
- javascript - How can I make the ES6 function generic for the whole project?
- hadoop - Hbase 与 Hadoop 的兼容性
- python - 如何模拟 my_package.__path__?
- java - 用户授予权限后如何打开新页面?