我正在尝试浏览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帮助我解决这个问题。
答案 0 :(得分:2)
就像你提到的隔行扫描是通过YML配置设置的。要启用它应该是除0以外的任何内容,如PHP配置If non-zero, the image will be interlaced, else the interlace bit is turned off.
请注意,上传图片时,上传时不会自动处理此图片。图像质量和隔行扫描仅适用于生成的图像。