我在Laravel 4.1项目中使用干预/图像库(使用GD)来调整一些图像(jpg和png)的大小。在开发服务器上一切都很好,但在生产中,缩略图的质量非常差。
我以为这是GD的问题,但下面是安装的版本,它们看起来和我很相似:
dev:OSX Mavericks,php 5.4.19
- GD支持:已启用
- GD版本:捆绑(2.1.0兼容)
- FreeType支持:已启用
- FreeType连杆:带FreeType
- FreeType版本:2.4.10
- T1Lib支持:已启用
- GIF读取支持:已启用
- GIF创建支持:已启用
- JPEG支持:已启用
- libJPEG版本:8
- PNG支持:已启用
- libPNG版本:1.6.2
- WBMP支持:已启用
- XBM支持:已启用
产品:Ubuntu 12.04,php 5.4.25
- GD支持:已启用
- GD版本:2.0.36
- FreeType支持:已启用
- FreeType连杆:带FreeType
- FreeType版本:2.4.8
- GIF读取支持:已启用
- GIF创建支持:已启用
- JPEG支持:已启用
- libJPEG版本:未知
- PNG支持:已启用
- libPNG版本:1.2.46
- WBMP支持:已启用
这些配置是否遗漏了什么?有人能想出另一个问题吗?
非常感谢。
编辑:添加代码示例:
$image = Image::make(public_path("data/Bandeau/2/picto-sylvestre.png"))->resize(null, 70, true);
举个例子,"prod"服务器上的拇指结果就在这里(源图像)。在dev-server上,结果要好得多:这里的例子(好吧,我承认"很多"有点夸张,但在一些图像上,它更明显,甚至在这张照片上,也可以看到眼睛周围的细线)。
我终于在Ask Ubuntu上发布了这个问题,php 5.4似乎与GD 2.1不兼容(@GlennRanders Pehrson发现2.0和2.1之间可能有一个重大的算法变化——见评论)。这很奇怪,因为我在OSX开发机器上有这个配置(Php 5.4和GD 2.1)。