在我的开发服务器上,一切都很好用,我通过表单上传的图像用
转换Image::make($img)->encode('webp');
当我去检查它时,它是完美的。
在我的生产服务器上,事情有点不同,例如,如果我上传一个正方形图像(完全是红色),在编码之后我最终得到一个褐色/金色图像和其他图像我最终得到一个空白区域。
由于正在创建图像,我认为只是编码存在问题,可能是我错过了一些配置..
dev服务器上的GD库版本是2.4.1和生产2.1.1
所有内容都在Ubuntu 17.10上运行dev和16.04生成。
Laravel版本5.5
修改
开发和生产上的PHP 7.0版
编辑2
这是出现的图像
答案 0 :(得分:8)
好吧,我可能做错了(经验丰富的人,请纠正我),但我确实有效。
我在Ubuntu 16.04 LTS上,libgd-dev唯一可用的包是2.1.1所以这就是我升级它所做的:
从https://packages.ubuntu.com/artful/amd64/{name-of-the-package}/download
zlib1g_1.2.11.dfsg-0ubuntu2_amd64.deb
的zlib1g-dev_1.2.11.dfsg-0ubuntu2_amd64.deb
libwebp6_0.6.0-3_amd64.deb
libpng16-16_1.6.34-1_amd64.deb
libgd3_2.2.5-3_amd64.deb
的libgd-dev_2.2.5-3_amd64.deb
我按照我列出的顺序安装它们,但是我只是看到了dpkg抱怨的依赖项并安装了它。
图像编码代码现在可以正常运行