← 返回博客

为什么我给图片扩展加了 360px 的小图门槛

一个看似简单的阈值,同时影响召回率与误杀率

  • 浏览器扩展
  • 工程实践

起因

用户反馈「下载下来的图里混着一堆 360×360 的缩略图」。第一反应是把过滤阈值从 100 调到 360,但改完发现真正的商品大图也被丢掉了。

原因

淘宝、京东的懒加载实现里,img.src 常常先指向一张 360×360 的缩略图,data-src 才是原图。按当前加载出来的尺寸判断,就会把原图当成小图。

解决

把规则改成:能还原成原图的地址,不参与尺寸判断。

const best = upgradeImageUrl(url);
if (w && h && (best === url) && min(w, h) <= 360) return; // 只有无法还原时才按尺寸过滤

还原后的地址交给图片库页面,用 Image() 加载出真实尺寸再判定。

结果

召回率不变,误杀率归零;顺带把「先下载再筛」的返工也省了。