ariznaf
(fernando)
1
我们是一个摄影论坛。
我们希望将图片上传限制在 1.2 MB 以内,但在图片符合该限制时,避免任何形式的重新压缩。
如果图片超过该限制,我们更倾向于提示用户并阻止其上传,但我们尚未找到实现这一功能的方法。
当有人上传略大的图片时,系统会激进地调整尺寸并重新压缩,导致用户抱怨论坛破坏了他们的照片(细节减少、色彩过渡变差等)。
随着最近新增的图片编辑器选项,情况变得更加糟糕。即使是小于 1.2 MB 的图片也会被重新压缩。
我们希望避免对用户图片进行任何干预(用户应自行根据重量和尺寸限制调整图片),至少对于符合限制的图片应如此。
如何最佳配置选项以实现这一行为?
我认为我们无法避免对不符合限制的图片进行重新压缩,但至少我们希望避免对符合限制的图片进行重新压缩,并控制超出限制图片的压缩程度。
论坛目前倾向于过度压缩图片,导致结果仅为 200 KB,长边仅 900 像素。
pfaffman
(Jay Pfaffman)
2
我想您可能需要一个插件来覆盖这些行为。
或者,让内容上传到其他地方并添加链接。
不过,我认为有一个插件或主题组件允许将图片上传到其他位置,例如 MinIO。类似这样的方案可能正是您所需要的。
可以参考以下示例:Azure Blob Storage Plugin 和 Video Upload to YouTube and Vimeo using Theme Component
ariznaf
(fernando)
3
嗯……我们希望将图片保存在自己的服务器上,因为如果图片托管在其他网站上,我们无法控制它们可能会丢失。
我假设我们无法完全禁用图像处理。
只要系统不触碰符合限制的图片(文件大小不超过 1.2 MB,长边不超过 2048 像素),并且允许我们对超出限制的图片进行适度的重新压缩,我们就很满意了。
我认为我已经实现了第一个目标:我将文件大小限制设置为 1230 KB,并将图像合成器的阈值也设置为相同的字节数。
现在看起来,小于该尺寸的图片不会被重新压缩(这在几个版本之前是可行的,似乎图像合成器是最近才引入的)。
但是,当您尝试上传一张例如 2100 像素、3 MB 的图片时,结果却很奇怪。它有时会被缩放到约 900 像素、200 KB,有时则是 1024 像素、500 KB……图片的细节和色彩分级完全丢失了。
我已将图像合成器的限制配置为 1920 像素,并将 JPEG 压缩质量设置为 90。因此,我原本期望它会按照该尺寸进行重新压缩(我用一些可以轻松在 90 质量、1920 像素下压缩至 1.2 MB 限制内的图片进行了测试)。但系统仍然过度压缩图片。
您是否已编辑与最大图像大小、宽度和高度相关的网站设置?这应该是您的首要步骤。
ariznaf
(fernando)
5
抱歉延迟回复。我没有注意到这个答案。
是的,正如我之前解释过的,我们设定了 1.2 MB 的大小限制和 4 MP 的分辨率限制。
当图片不符合此限制时,系统会对其进行强力压缩,有时会产生糟糕的结果,例如上传的图片宽度为 1920 或 2048 像素,但最终宽度却只有 600 像素或 1000 像素。
对于有经验的人来说,质量损失显而易见:纹理丢失、光晕、糟糕的色彩分级……
随着最近的升级,即使符合限制的图片也会被系统进行“改进”并压缩,导致质量损失。
我们调整了“重新压缩原始 jpg 质量”并将其设置为 100%,希望阻止重新压缩。这似乎有效,但不确定是否仍然会发生重新压缩(但至少没有明显的质量损失)。
Falco
(Falco)
6
您需要调整 composer media optimization image bytes optimization threshold 以禁用小于该大小的图片的客户端大小优化。默认值适用于大于 500KB 的图片,因此您需要将该设置增加到 1.2MB。
我们是否应该改进这些网站设置的描述,使其更清楚地说明工作原理?