Php imagewebp函数失败而不生成任何错误
我想在另一个文件夹中将jpeg图像文件夹转换为webp格式。我正在使用GD库中的imagewebp函数。调用函数时,代码只是暂停。虽然文件实际上是创建的,但它的长度为零。不会抛出任何错误 GDU信息显示了2.1版,WebP支持为1 php版本5.6 如果我更改为Php imagewebp函数失败而不生成任何错误,php,gd,Php,Gd,我想在另一个文件夹中将jpeg图像文件夹转换为webp格式。我正在使用GD库中的imagewebp函数。调用函数时,代码只是暂停。虽然文件实际上是创建的,但它的长度为零。不会抛出任何错误 GDU信息显示了2.1版,WebP支持为1 php版本5.6 如果我更改为imagepng(),则一切正常,因此库已安装并正常工作 我试过用单个的小图片,以防它是内存问题,但仍然有同样的问题 还尝试了imagecreatefromjpeg而不是imagecreatefromstring,但相同 将质量过滤器移除
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 );
}
$jpgfiles=glob('jpeg/*.jpg');
回声“”。sizeof($jpgfiles)。“找到文件。”;//显示7个文件
foreach($JPG文件为$j){
echo“找到$j”;//显示找到的第一个文件
$filename=substr($j,6,-4)。“.webp”;//保持相同的文件名,但更改扩展名
echo“$filename”;
$jpgimage=imagecreatefromstring(文件获取内容($j));
如果(!$jpgimage)死亡(“在imagecreatefromstring上失败”);
如果($webpimage=imagewebp($jpgimage,'webps/'.$filename,65))回显“$filename created”;//这永远不会回显
else die(“在imagewebp上失败”);//也不会死
图像销毁($jpgimage);
}
我希望创建映像,但程序执行停止。错误日志不包含任何信息。永远不会调用die命令。webp文件已创建,但长度为零。那么,呃,错误报告真的在进行吗?为测试创建/保存一个空图像怎么样<代码>strace php-r'imagewebp(imagecreatetruecolor(10,10));'代码>错误报告(E_全部);imagewebp(imagecreatetruecolor(10,10),'stack.webp');ran出现404错误时,创建了stack.webp文件,但长度为零,error.log文件为空。在命令行上进行测试可能比在进程崩溃时查看404(apache或fpm日志,顺便说一句)更有效率。我不熟悉从命令行运行,但我尝试过,得到了无数行文本。最后两行被SIGABRT++终止了++++中止Apache错误日志检测到***堆栈破坏***:/opt/cpanel/ea-php56/root/usr/bin/php cgi终止了所以,呃,错误报告真的在进行吗?为测试创建/保存一个空图像怎么样<代码>strace php-r'imagewebp(imagecreatetruecolor(10,10));'代码>错误报告(E_全部);imagewebp(imagecreatetruecolor(10,10),'stack.webp');ran出现404错误时,创建了stack.webp文件,但长度为零,error.log文件为空。在命令行上进行测试可能比在进程崩溃时查看404(apache或fpm日志,顺便说一句)更有效率。我不熟悉从命令行运行,但我尝试过,得到了无数行文本。最后两行被SIGABRT++终止了++++中止Apache错误日志检测到***堆栈破坏***:/opt/cpanel/ea-php56/root/usr/bin/php cgi终止