gpt4 book ai didi

php - imagewebp (php) 创建损坏的 webp 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:37 26 4
gpt4 key购买 nike

最近一直在摆弄WebP图片格式。我为此使用 php 5.5.12,安装了 gd 库(支持 gd 2.1.0/webp)。我注意到出于某种原因,PHP 创建了损坏的 webp 图像。我使用的代码如下:

$im= imagecreatefromjpeg("test_img.jpg");
$succes = imagewebp($im, "test_img.webp");
if ($im !== false && $succes == true) {
echo "Succes.";
}

我不明白为什么这个 php 脚本写入文件系统的 webp 图像是损坏的。为了您的方便,我附上了一张测试图像。处理后,其关联的 webp 图像确实是我系统上的损坏图像。感谢您对此提出意见,因为我不知道为什么这不能正常工作。

图片:http://i.stack.imgur.com/pwZHv.jpg (JPEG)

最佳答案

某些版本的 libgd 忘记在奇数大小的 webp 文件末尾添加零填充(this bug,如前所述)。

可以用 PHP 修复。替换为:

imagewebp($im);

有了这个:

ob_start();
imagewebp($im);
if (ob_get_length() % 2 == 1) {
echo "\0";
}
ob_end_flush();

或者,如果您想创建一个文件而不是直接输出结果:

imagewebp($im, 'test_img.webp');
if (filesize('test_img.webp') % 2 == 1) {
file_put_contents('test_img.webp', "\0", FILE_APPEND);
}

关于php - imagewebp (php) 创建损坏的 webp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com