结论:后台没有“一键水印”的开关,可行的做法是先用「上传限制」控制源头体积,再通过运行时插件钩子在上传环节接管图片,完成压缩或加水印。

① 先控制上传:在后台「系统设置 → 上传限制」里设好单文件大小上限和允许的图片类型,超过限制就直接拒绝,大图不会保存。图片保存前系统还会做二次校验(真实类型、能否解码),不合格的不会写入磁盘,这样从源头减少大文件。

② 压缩与水印属于业务加工,按插件机制来做:Clara BBS 有 150+ 运行时钩子,action/filter 双机制,插件可以在图片上传完成的钩子里拿到文件路径,用 GD 或 Imagick 重采样后覆盖原图,再叠加文字或图片水印。插件保存即生效,不用清缓存;插件报错只记日志,不会影响发帖主流程。

③ 环境要确认:后台「环境体检」能看到 PHP 扩展情况,图片处理依赖 GD 或 Imagick。另外,用无 GD 会自动降级成算术题的验证码逻辑可以参考,但图片压缩就没法做了。参数上建议长边压到 1600px 左右、质量 80,水印放右下角、透明度放低,别糊住正文内容。