原图水印在右下角,生成的缩略图上水印跑到了中间。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
x = int(w * 0.94) - wm.width y = int(h * 0.94) - wm.height img.paste(wm, (max(x, 0), max(y, 0)), wm)
水印按固定像素定位,缩略图尺寸变化后坐标没有同步缩放。这一点先确认清楚,后面就不用反复试。
「图片水印位置」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,按比例计算位置;先缩放再叠加水印;留出安全边距。
改完照着核一遍,各尺寸图片的水印都在右下角,间距一致。