Silverstripe上传和隔行扫描图像

时间:2014-03-19 01:20:14

标签: php image gd silverstripe interlacing

我正在尝试浏览GDBackend的Silverstripe Class定义,但我无法设置交错值。

我目前正在使用_config.php设置质量:

config::inst()->update('GDBackend', 'default_quality', 60);

因此,我尝试使用以下内容设置隔行扫描:

config::inst()->update('GDBackend', 'image_interlace', 1);

这是设置这些值的正确方法吗?很难知道本课程中所有的弃用行为。

上传图像时,文件大小会减少 - 因此质量似乎设置正确,但隔行扫描设置无效。

此外,日志没有任何错误。

-------------------更新:

在咨询了Silverstripe IRC频道后,我已将配置设置移动到yml中,如下所示。

GDBackend: default_quality: 60 image_interlace: 1

上传后图片仍未隔行扫描。

我正在使用this tool来测试隔行扫描。

-------------------结论:

事实证明,这些设置不是上传处理的一部分,仅适用于CMS生成的图像。例如,前缀为 SetWidth400 -image-name.jpg之类的图像将按照yml配置的指示进行隔行扫描和优化。

我将研究扩展上传模块,为用户提供在上传时隔行图像的选项。

感谢colymba帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

就像你提到的隔行扫描是通过YML配置设置的。要启用它应该是除0以外的任何内容,如PHP配置If non-zero, the image will be interlaced, else the interlace bit is turned off.

中所述

请注意,上传图片时,上传时不会自动处理此图片。图像质量和隔行扫描仅适用于生成的图像。