惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
Cloudbric
Cloudbric
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
爱范儿
爱范儿
The Cloudflare Blog
腾讯CDC
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
C
Check Point Blog
Schneier on Security
Schneier on Security
S
Schneier on Security
J
Java Code Geeks
B
Blog RSS Feed
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
A
Arctic Wolf
S
Secure Thoughts
P
Palo Alto Networks Blog
The Last Watchdog
The Last Watchdog
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 三生石上(FineUI控件)
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
U
Unit 42
I
InfoQ
D
DataBreaches.Net
P
Privacy International News Feed
T
Troy Hunt's Blog
博客园 - 叶小钗
T
Threatpost
博客园 - Franky
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
www.infosecurity-magazine.com
www.infosecurity-magazine.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs

分享创造

分享 KCase 脑图测试用例生成平台(AI 辅助生成测试用例) 标签页囤积症自救:写了个插件 TabRack,主打快速检索、自动分类和 AI 摘要 [file-preview]一个比较全面的在线文件预览组件库-支持 react 和 vue 撸了 iOS 个[极简水印相机],直接免费 做了一个 V2EX Skill 写了个 iOS 打码 App「遮鸭 Maskduck」,纯离线免费 35 岁前端,裁员失业后,我花 1 个月做了个 AI 生图网站 亲身经历猫咪急症,我做了一款猫狗疼痛检测工具,希望能救你家毛孩一命 如何用 AI 做比较酷炫的落地页? 求真!最近 AI 生图的能力强到可怕 开源一个查看 k8s 的菜单栏工具-kubebar Packpour:我做了个专门给 App Store Connect 填多语言元数据的小工具 面对 140 年一遇的超级厄尔尼诺,我做了个全球监测小站 做了一个自动翻译的 Hacker News 客户端 做了一个 AI 头像生成器,可以免费生成 2 次 [送码 50 个] 自己手搓了个高颜值的倒数日 App——拾光机,求 V 友们指点 一个将苹果健康 APP 数据导出的工具,然后把你的数据喂给 AI 分析 我做了一个叫「订阅斩」的 iOS App,专门对付那些悄悄扣钱的订阅 做了个草率的日麻互动漫画,听听反馈 喜欢自己洗车的朋友们,我用 ai 做了一款洗车小程序 -- 洗车志 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 用 AI 开发熊孩子自律的小程序 用 OpenClaw 搭建个人运动助手 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 [Video Companion]一个 chrome 插件,解决大多对视频操作的需求~欢迎使用提 bug AI 时代,做产品简单了,把产品推广出去却变的更难了~ bestskills.dev - Skills 精选和评测站点 免 ROOT 强力卸载安卓广告软件 一个 All In One 的运维工具,支持 SSH、数据库、Redis 管理 [开源] Codeg V0.10:专注于代码生成的多智能体 IDE(cc、codex、gemini、opencode……),新版本重构了工作区,飞一般的体验,支持桌面端、服务器部署 老婆嫌鼻型不完美?我做个医美 AI,帮你一键分析变美效果! BrandMaker-3 分钟帮你搞定品牌资产设计 [开源·Actionow] 包含 Agent 辅助·团队协作·多租户·积分系统的 AI 影视创作 SaaS 平台 OCR 发票识别服务 编程小白用 Nextjs Saas 搭建的第一个 GPT Image 2 体验站 希声 (Still) :为 Audiobookshelf 打造的 iOS 原生客户端 Opus 真的牛炸了! 5 天和比 Mermaid 更专业的图表渲染引擎 最近在做一个 OPC 社区,欢迎大家注册。 做了一个内网/本机用的 todo 系统(rbtodo) 昨天上线一个推理密码的小游戏,大家有空玩玩。 用 golang 写了,一套面向个人音乐资产的本地优先音乐系统 自己做的 GPT Image 2 生图网站 可白嫖 Codex 设计的垃圾小游戏,玩完想吐 写了一个 NestJS 中文文档站 分享一个刚上线就挂的网站:蹭词需注意啊 深夜开源 OpenVibble,不需要开发板也可蓝牙连接 Claude Desktop 和 CC 监工了! Rust 写的 ML 驱动的本地漫画翻译器,一键汉化本子! 用 AI 帮助写简历和准备面试,给大家推荐这个我们开发的使用求职助手网站 给猫梳毛小游戏 Claude Code 小白免费从入门到精通,系列视频教程,第一期 一个把单词、句子、阅读、复习全打通的英语学习小程序 - “匠心英语学习助手” 年前说要把 macOS 的文件备份应用 savepoint 开源的,但是耽误了一阵子 做了个开源的 AI 代码安全智能体 mythos-agent,想在 V 站求轻拍 一个小项目:快速清理磁盘大文件的 Python 代码 我用 Agent 写了个 NFL(美国国家橄榄球联盟)随机生成器 & 抽签转盘 Basevolt: 我做了一个本地优先的数据库管理工具,一分钟生成管理后台 vibe 了一款记忆训练游戏 iOS 照片备份 App「🍉西瓜备份」上线,直接免费 我也来分享一个小游戏《勇闯霍尔木兹海峡》 solo 做了个 AI 图片转视频的工具站,来 V 站交个作业 大家好,我们的出海 GEO 平台 - Dageno AI,今天正式在 Product Hunt 上线了,诚邀大家来支持我们一票! 一个自动化工具,操作浏览器,常用功能支持 hub, LLM 友好 写了个双人爱之语测试网站,帮我和对象解决了多年的矛盾 开发了一个 patches 风格的数字矩形游戏,欢迎来挑战 BoringTun 不做 manager,那我用 Rust 做一个: WG-FRIEND PushGo,全新消息推送 App,开源免费,支持 iOS / watchOS / macOS / Android 做了一个 Typeless 平替,便宜 10 倍,用 Claude Code / Agent 时再也不用憋着慢慢打字了 一个 MacOS 右键新建文件的拓展应用,我知道本站大佬应该用不上😄 个人开发了 3 年的数据可视化工具发布桌面端了 产品派新版发布了,增加通知偏好邮件通知功能,修复发布产品网址的问题 我们把给不同产品单独写的 AI 客服,做成了一个通用产品 什么样的独立开发产品真的能赚到钱? GridMove for macOS:按窗口任意地方移动窗口,或者快速调整为自定义布局 写了个小工具,试图把 Everything 的体验带到 Mac 上 不只是 NAS:走出局域网, Nas Player Pro 依然能打 做了一个极简的分析澳门博彩游戏胜率和数学期望的网站,希望能对有这方面兴趣的兄弟们有点用 「开源」SONIC-LENS / MUSIC ARCHIVE / MAC + iPhone + iPad [开源] Vela — 一款本地优先、隐私安全的 AI 长文/小说创作 IDE gpt image 2 貌似全量上线了,捡漏了一个不错的域名,再试一次 分享几个效率小工具,在 Finder 中一键使用 claude code / codex-cli / opencode-cli / gemini-cli 打开项目 好消息,貌似我的开源项目被盗版,发布到了微软商店 # [拉票] 我用 TRAE SOLO 做了个 macOS App「到站请下车」(求支持) 越来越勤劳了,做了一个交易的小产品,即将上线…… 大功能更新再发一次:订小阅 - 小程序管理你的订阅 写了一个 skills,用于判断某些产品是否是智商税 打磨了一款远程 vibe 工具 给大家介绍一下我的第六个想法:免安装的 mac 磁盘空间清理利器 mac-space-cleanup skill 做了个剪贴板&截图增强工具 养小龙虾的朋友们快来测 agent 的 mbti🤖 任何一个 agent 都可以一键参与测试 如果你做过 segmentation,可能默认用了太久 argmax 跟风复刻了个 Web Harmonium,有点意思 分享下自己 vibecoding 的 android ssh 软件,基于 connectbot + frp 来实现 尝试用 claude code 做了一个完整的 saas 订阅站 PasteMemo v1.5.0:接力模式大重构,自动化接入 macOS 快捷指令 开源复刻 CodeX Computer Use 的「权限申请」交互,目前没看到比这个更细致的 做了个 Claude Code 多账号切换启动器,不用再反复 /login 了 code is cheap, show me your design ——分享一个我的 AI 时代的软件开发范式 折腾了个自托管 Docker Registry —— 一个镜像跑起来就是完整的(UI + 账户 + 权限) 用时一个月,开发了一款适合上班摸鱼的 web 端 Roguelike RPG 游戏 用 JS+HTML+CSS 做了一款网页版宝可梦游戏
做了一个 Chrome 扩展来批量提取网页图片, Preact + TypeScript 实现,开源求反馈
coderkyriewe · 2026-05-13 · via 分享创造

最近在整理一些设计素材时,发现需要从网页批量提取图片,但市面上的工具要么功能太简单,要么就是广告满天飞。于是花了几个月时间自己写了一个 Chrome 扩展 - Image Harvest 。

开发动因

最初的诉求其实很简单:想有一个能智能识别网页所有图片、支持筛选、批量下载的扩展。但用了一圈后发现,要么是 MV2 扩展(即将被 Chrome 废弃),要么是收费但功能不透明,要么就是广告太多。作为开发者,想着干脆自己做一个,顺便把想玩的技术都试一试。

技术亮点

1. MV3 适配踩坑

Chrome Manifest V3 的迁移是最大的挑战。Service Worker 替代了 background page ,意味着不能使用 DOM API ,也不能持久化全局状态。为了解决这个问题,采用了消息通信机制,把 DOM 操作都放到 content script 里,Service Worker 只负责协调和状态管理。另外,IndexedDB 的异步特性也需要特别注意,在批量操作时容易造成性能瓶颈,最后采用了事务批处理和懒加载策略才解决。

2. Preact + TypeScript 技术选型

扩展使用了 Preact + TypeScript 技术栈,原因有几个:- Preact 体积小(压缩后只有 3KB ),比 React 轻量很多,适合扩展场景- TypeScript 提供类型安全,减少运行时错误- 采用增量迁移策略:核心 UI 用 Preact 组件,部分遗留代码仍用原生 JS- MV3 对代码体积有严格限制,Preact 的轻量特性正好符合要求- 用 Vite 做构建工具,配合 crxjs 插件,开发体验不错- Shadow DOM 的使用比较克制,只在需要样式隔离的地方才用,避免过度设计

3. pHash 去重算法

批量下载时经常遇到重复图片(比如同一张图片的不同尺寸),传统的 MD5/SHA1 哈希对图片微小变化太敏感,一张图缩放一下哈希值就完全不同。选用了 pHash (感知哈希)算法,通过 DCT 变换提取图片的"视觉指纹",即使图片被压缩、缩放、轻微调色,也能识别出是同一张图。实现上用了 Canvas API 的 getImageData() 获取像素数据,然后手动计算 DCT ,虽然性能比 WebGL 版本差一点,但胜在兼容性好。

4. MutationObserver 实时监控

为了支持动态加载的图片(比如瀑布流、无限滚动),用 MutationObserver 监听 DOM 变化,配合 IntersectionObserver 实现懒加载检测。这里有个坑是 MutationObserver 的回调频率很高,需要做防抖处理,否则会卡顿。最后用了 requestAnimationFrame + 时间戳的双重节流策略。

功能介绍

核心功能包括:

  • 智能提取:自动遍历 Shadow DOM ,支持懒加载图片检测

  • 批量下载:一键打包成 ZIP ,支持自定义命名模板(如 {domain}_{index}.{ext}

  • 智能去重:基于 pHash 的视觉去重,可调整相似度阈值

  • 实时监控:MutationObserver 自动捕获新增图片

  • 多标签页:支持跨标签页提取和聚合

  • 收藏夹:用 IndexedDB 本地存储常用图片

  • 颜色提取:Median Cut 算法提取主色调,方便按颜色筛选

  • 反向图搜:集成 Google Images 搜索

  • 5 语言界面:支持中英文、繁體中文、日本語、Español

开源与定价

代码已经开源在 GitHub ( MIT 协议),欢迎各位大佬指点。Chrome 商店上架了免费版,付费版主要是为了支持持续开发( 7 天免费试用,30 天退款)。定价参考了同类扩展,但核心功能免费版都有,付费版主要是批量下载次数限制和一些高级功能。

求反馈

目前还在早期阶段,可能有不少 bug 和性能问题。如果各位大佬愿意试用,有以下几点特别想听听意见:

  1. 性能优化:在图片特别多的页面(比如电商网站)会不会卡顿?

  2. 兼容性:有没有遇到某些网站完全提取不到图片的情况?

  3. 功能建议:有哪些刚需功能是当前没有的?

  4. 代码质量:GitHub 上的代码如果有什么明显问题,欢迎直接提 PR

GitHub: https://github.com/zbw-zbw/image-harvestChrome

chrome 插件商店: https://chromewebstore.google.com/detail/iecgnjidmogebokcfnejncgnelcepffo

插件官网: https://image-harvest.kyriewen.cn