[{"data":1,"prerenderedAt":122},["ShallowReactive",2],{"article-images-blindWatermark":3,"i-lucide:box":42,"i-lucide:code-2":47,"i-lucide:film":49,"i-lucide:file-text":51,"i-lucide:image":53,"i-lucide:square-sigma":55,"i-lucide:gamepad-2":57,"i-lucide:sparkles":59,"i-lucide:graduation-cap":61,"i-lucide:menu":63,"i-lucide:moon":65,"i-lucide:sun":67,"i-material-symbols:language":69,"i-lucide:chevron-down":71,"i-lucide:check":73,"i-lucide:scan-search":75,"i-lucide:lock":77,"i-lucide:info":79,"i-lucide:image-plus":81,"i-lucide:split":83,"i-lucide:eye-off":85,"i-lucide:camera":87,"i-lucide:building-2":89,"i-lucide:search":91,"i-lucide:shield":93,"i-lucide:layers":95,"i-lucide:upload":97,"i-lucide:download":99,"i-lucide:stamp":101,"i-lucide:image-down":103,"i-lucide:eraser":105,"i-lucide:replace":107,"i-lucide:scaling":109,"i-lucide:qr-code":111,"i-lucide:gallery-vertical-end":113,"i-lucide:arrow-up-right":115,"i-tabler:markdown":117,"i-lucide:badge-check":118,"i-lucide:scroll-text":120},{"zh":4,"en":23},[5,8,11,14,17,20],{"title":6,"content":7},"什么是隐形水印？为什么你需要它","\u003Cp>隐形水印是一种把信息「藏」在图片里的技术——加了水印的图片和原图看起来一模一样，肉眼完全分辨不出。不像传统的文字水印或 Logo 覆盖会影响美观，隐形水印完全不影响图片的使用。\u003C\u002Fp>\u003Cp>它的核心用途是\u003Cstrong>防盗图和版权溯源\u003C\u002Fstrong>：当你的照片被别人拿去用了，你可以从对方的图片中「提取」或「验证」你预先埋入的水印，证明这张图是你的——这在维权时非常有说服力。\u003C\u002Fp>",{"title":9,"content":10},"两种模式，满足不同防护需求","\u003Cp>MeTool 提供两种隐形水印模式，你只需根据自己的需求选择：\u003C\u002Fp>\u003Ch3>「嵌入自定义文字」模式\u003C\u002Fh3>\u003Cp>在图片中藏入你写的任何文字（比如版权声明、你的名字），验证时可以完整读出来。适合需要\u003Cstrong>证明「这是谁的图」\u003C\u002Fstrong>的场景。这种模式对噪声、压缩、遮挡有不错的抵抗力，但如果图片被旋转或大幅缩放就可能失效。\u003C\u002Fp>\u003Ch3>「抗旋转\u002F缩放」模式\u003C\u002Fh3>\u003Cp>在图片中写入一个由密码生成的隐形指纹，验证时用相同密码就能判断水印是否存在。这种模式的最大优势是\u003Cstrong>图片被旋转、缩放后仍然能验证\u003C\u002Fstrong>，适合图片可能被各种方式转发传播的场景。\u003C\u002Fp>\u003Ch3>实测对比\u003C\u002Fh3>\u003Cp>下面是用 MeTool Logo 做的实测。先看加水印后的效果——原图和加了水印的图肉眼看不出区别：\u003C\u002Fp>\u003Cdiv style=\"display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;\">\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Foriginal.png\" alt=\"原图\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">原图\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fdwt-embed.png\" alt=\"文字嵌入水印\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">文字嵌入模式\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Ffft-embed.png\" alt=\"抗旋转水印\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">抗旋转模式\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>然后对加了水印的图片做各种「编辑」，看水印能不能撑住：\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>编辑方式\u003C\u002Fth>\u003Cth>编辑后的图片\u003C\u002Fth>\u003Cth>文字嵌入\u003C\u002Fth>\u003Cth>抗旋转检测\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>亮度 +30\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-brightness.png\" alt=\"亮度编辑\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 60%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>遮挡 80×80\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-mask.png\" alt=\"遮挡编辑\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 73%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>旋转 90°\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-rotate90.png\" alt=\"旋转编辑\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 80%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>缩放往返 75%\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-scale75.png\" alt=\"缩放编辑\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅ 64%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>裁剪 90%\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-crop90.png\" alt=\"裁剪90%\" width=\"72\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 51%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>裁剪 50%\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-crop50.png\" alt=\"裁剪50%\" width=\"50\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>\u003Cstrong>怎么选？\u003C\u002Fstrong>需要嵌入可读文字（版权声明）→ 选文字嵌入。图片可能被旋转\u002F缩放后传播 → 选抗旋转模式。两种模式可以叠加使用。\u003C\u002Fp>",{"title":12,"content":13},"使用细节：密码、格式和隐私","\u003Cp>\u003Cstrong>密码保护：\u003C\u002Fstrong>两种模式都支持密码。嵌入和验证必须使用相同密码，默认密码是「metool」，建议换成你自己的。\u003C\u002Fp>\u003Cp>\u003Cstrong>输出为 PNG：\u003C\u002Fstrong>加水印后的图片统一输出 PNG 格式。因为 JPEG 等有损压缩会破坏隐形水印的数据，PNG 是无损的，能完整保留水印。\u003C\u002Fp>\u003Cp>\u003Cstrong>100% 本地处理：\u003C\u002Fstrong>所有运算都在你的浏览器里完成，图片不会上传到任何服务器，隐私安全。\u003C\u002Fp>\u003Cp>\u003Cstrong>自动品牌后缀：\u003C\u002Fstrong>文字嵌入模式会在你的水印末尾自动附加「from metool.online」标识，方便溯源。\u003C\u002Fp>",{"title":15,"content":16},"隐形水印的另一面：验证官方文件的真实性","\u003Cp>了解了「截图会破坏水印」的局限之后，反而引出了隐形水印\u003Cstrong>最适合的使用场景\u003C\u002Fstrong>：\u003Cstrong>原图文件的官方性验证\u003C\u002Fstrong>。\u003C\u002Fp>\u003Cp>设想这样一个场景：某机构颁发一批电子证书，以图片格式发给学员或获奖者。这类证书极易被仿制——任何人都能用 PS 修改姓名和日期，再另存为图片。传统方法要么加可见水印影响美观，要么完全无防伪手段。\u003C\u002Fp>\u003Cp>使用隐形水印后，流程变成：\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>机构制作原版证书图片\u003C\u002Fstrong>，在颁发前用 MeTool 嵌入「机构名称 + 证书编号 + 密码」的隐形水印，输出 PNG。\u003C\u002Fli>\u003Cli>\u003Cstrong>将水印 PNG 作为官方正式版本发放\u003C\u002Fstrong>（邮件附件、官网下载、微信原图发送均可）。\u003C\u002Fli>\u003Cli>\u003Cstrong>收件方或核查方想验证真伪\u003C\u002Fstrong>，将图片上传到验证页，输入机构公布的密码，一秒内即可提取水印文字——如果能读出「XX 机构 · 正式颁发 · 2026」，说明这张图是官方出具的原图，而非二次仿制。\u003C\u002Fli>\u003C\u002Fol>\u003Cp>这套流程的核心前提是：\u003Cstrong>机构分发原图 PNG 文件，而非截图或经过二次处理的图片\u003C\u002Fstrong>。只要接收链路保持原图，隐形水印就能稳定工作。\u003C\u002Fp>\u003Ch3>适用场景\u003C\u002Fh3>\u003Cp>\u003Cstrong>① 教育机构证书：\u003C\u002Fstrong>在线课程结业证书、技能认证、成绩单图片。学员拿到图后可自行验证，也可发给用人单位核查，无需每次回函到机构核对。\u003C\u002Fp>\u003Cp>\u003Cstrong>② 企业授权书 \u002F 合作协议扫描件：\u003C\u002Fstrong>合同或授权书扫描成图片后嵌入水印，对方收到后可验证是否为官方出具，防止对方提供伪造扫描件。\u003C\u002Fp>\u003Cp>\u003Cstrong>③ 活动主办方分发的参与证明：\u003C\u002Fstrong>赛事、论坛、展会颁发的参与证明图，嵌入水印后接收方可向第三方证明证明的真实性。\u003C\u002Fp>\u003Cp>\u003Cstrong>④ 官方声明 \u002F 公告截图防伪：\u003C\u002Fstrong>机构在官方声明图片中嵌入水印，澄清「这是官方发布的原图，不是被断章取义的截图」。\u003C\u002Fp>\u003Ch3>与传统防伪方式的对比\u003C\u002Fh3>\u003Ctable>\u003Ctr>\u003Cth>方式\u003C\u002Fth>\u003Cth>美观度\u003C\u002Fth>\u003Cth>可验证性\u003C\u002Fth>\u003Cth>成本\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>可见水印\u002F水印覆盖\u003C\u002Ftd>\u003Ctd>❌ 影响美观\u003C\u002Ftd>\u003Ctd>❌ 可被裁剪去除\u003C\u002Ftd>\u003Ctd>低\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>二维码链接\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅ 需后端数据库\u003C\u002Ftd>\u003Ctd>高（需服务器）\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>区块链存证\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>高（链上费用）\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>隐形水印（MeTool）\u003C\u002Ftd>\u003Ctd>✅ 完全不可见\u003C\u002Ftd>\u003Ctd>✅ 本地即可验证\u003C\u002Ftd>\u003Ctd>零（纯浏览器）\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>隐形水印不需要服务器、不需要数据库，验证完全在浏览器本地完成。对于中小机构、独立创作者、个人品牌来说，这是成本最低、部署最简单的一种防伪方式。\u003C\u002Fp>",{"title":18,"content":19},"截图后能验证水印吗？了解隐形水印的局限","\u003Cp>很多人关心：别人用截图软件截走加了水印的图片，还能验证归属吗？\u003Cstrong>答案是：不能指望稳定通过。\u003C\u002Fstrong>截图不是复制原图像素，而是经过显示器渲染、色彩转换、可能的分辨率变化后重新编码——这些都会破坏或削弱频域中的水印信号。\u003C\u002Fp>\u003Ch3>截图会带来哪些破坏？\u003C\u002Fh3>\u003Cp>\u003Cstrong>分辨率变化：\u003C\u002Fstrong>在浏览器或看图软件里缩放显示后截图，等于对图片重新采样。文字嵌入模式对旋转和大幅缩放较敏感，截图后的像素排列与原文件不同，验证容易失败。\u003C\u002Fp>\u003Cp>\u003Cstrong>色彩与亮度偏移：\u003C\u002Fstrong>显示器色域、HDR、夜间模式等会改变像素值。实测中，亮度 +30 的调整已足以让文字嵌入模式失效。\u003C\u002Fp>\u003Cp>\u003Cstrong>有损压缩：\u003C\u002Fstrong>截图若保存为 JPEG，水印信息会被进一步破坏。验证时请尽量使用 PNG 格式的截图文件。\u003C\u002Fp>\u003Ch3>两种模式在截图场景下的表现\u003C\u002Fh3>\u003Ctable>\u003Ctr>\u003Cth>场景\u003C\u002Fth>\u003Cth>文字嵌入模式\u003C\u002Fth>\u003Cth>抗旋转\u002F缩放模式\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>原图 PNG 文件直接验证\u003C\u002Ftd>\u003Ctd>✅ 可靠\u003C\u002Ftd>\u003Ctd>✅ 可靠\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>1:1 显示、PNG 格式截图\u003C\u002Ftd>\u003Ctd>⚠️ 不保证\u003C\u002Ftd>\u003Ctd>⚠️ 有一定概率\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>缩放显示后截图\u003C\u002Ftd>\u003Ctd>❌ 大概率失败\u003C\u002Ftd>\u003Ctd>⚠️ 视缩放比例而定\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>JPEG 格式截图\u003C\u002Ftd>\u003Ctd>❌ 大概率失败\u003C\u002Ftd>\u003Ctd>❌ 大概率失败\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Ch3>旋转后再保存为 JPEG：传统频域水印的硬限制\u003C\u002Fh3>\u003Cp>一种常见的图片二次传播路径是：原图被旋转（手机竖拍转横屏、社交媒体自动旋转）→ 重新保存为 JPEG。我们用真实照片和 \u003Ccode>sharp\u003C\u002Fcode> 做了系统测试——对三张不同类型的真实照片施加真实的双三次旋转和 JPEG 编解码，结论是：\u003Cstrong>旋转任意角度后再保存为 JPEG，传统频域盲水印（包括本站两种模式）基本无法可靠检出，三张图均失败。\u003C\u002Fstrong>这不是算法 bug，而是频域水印的本质局限：旋转打乱了 DCT\u002F小波的块对齐，JPEG 的有损量化进一步抹去信号，二者叠加后已超出算法的恢复能力。\u003C\u002Fp>\u003Cp>这个局限在腾讯云、阿里云等云厂商的传统频域盲水印服务中同样存在；真正能对抗旋转+JPEG组合攻击的，是 Google SynthID、Adobe TrustMark 这类经过对抗训练的深度学习水印——但它们目前不支持用户自定义密码，且多为 AI 生成内容溯源专用，无法直接替代\"嵌入任意文字\"的使用场景。\u003C\u002Fp>\u003Cp>\u003Cstrong>实际建议：\u003C\u002Fstrong>隐形水印最适合保护\u003Cstrong>原图文件\u003C\u002Fstrong>的传播链路（直接发送 PNG、网盘分享原文件等）。如果担心图片被截图盗用，可叠加使用「抗旋转\u002F缩放」模式增加一层指纹验证，但不要将其作为唯一防线。验证时请选择与嵌入时相同的模式和密码。\u003C\u002Fp>",{"title":21,"content":22},"AI 生成图片中的隐形水印：ChatGPT、Gemini、Midjourney 都在做什么？","\u003Cp>在 2026 年，随着 AI 图像生成技术（如 ChatGPT \u002F DALL-E、Google Gemini、Midjourney、Stable Diffusion）的爆发式增长，\u003Cstrong>AI 生成图片的溯源和标识\u003C\u002Fstrong>成为全球关注的焦点。各大 AI 厂商已经开始在生成的图片中嵌入隐形水印。\u003C\u002Fp>\u003Ch3>Google SynthID\u003C\u002Fh3>\u003Cp>Google DeepMind 开发的 SynthID 技术，已在超过 100 亿张 Gemini 和 Imagen 生成的图片中嵌入隐形水印。SynthID 是一个\u003Cstrong>后处理（post-hoc）\u003C\u002Fstrong>系统：使用经过训练的神经网络编码器，在图片生成完成后嵌入不可见信号。与传统 DWT-DCT 方案在固定频率位置嵌入信息不同，SynthID 的深度学习编码器会将信号分散到整个图像中，经过专门训练以抵抗裁剪、压缩、截屏等常见操作。2025 年底 Google 推出了公共 SynthID 检测器，用户可以验证内容是否由 Google 模型生成。\u003C\u002Fp>\u003Ch3>SynthID vs DWT-DCT-SVD：技术路线对比\u003C\u002Fh3>\u003Cp>MeTool 使用的 DWT-DCT-SVD 属于\u003Cstrong>经典频域水印\u003C\u002Fstrong>方案，在固定的小波\u002FDCT 系数位置嵌入比特，算法公开透明，用户可以用自己的密码保护水印。SynthID 属于\u003Cstrong>深度学习水印\u003C\u002Fstrong>方案，使用私有的神经网络模型，信号分布在学习到的高维空间中，只有 Google 官方解码器能检测。两者是完全不同的技术路线，无法跨工具互通——SynthID 水印不能被 DWT-DCT-SVD 工具提取，反之亦然。但它们的核心目标相同：在不影响画质的前提下，为图片嵌入可追溯的隐形标识。\u003C\u002Fp>\u003Ch3>C2PA 标准（内容溯源联盟）\u003C\u002Fh3>\u003Cp>由 Adobe、微软、BBC 等发起的 C2PA（Coalition for Content Provenance and Authenticity）标准，采用加密签名和元数据的方式为图片附加来源信息。ChatGPT 和 Adobe Firefly 生成的图片现在会携带 C2PA 元数据，标明「由 AI 生成」。不过 C2PA 依赖文件元数据，截屏或重新保存后可能丢失——这正是 SynthID 等像素级水印存在的意义。\u003C\u002Fp>\u003Ch3>Meta Pixel Seal 和 OpenAI 的水印策略\u003C\u002Fh3>\u003Cp>Meta 开发了 Pixel Seal 水印系统（Meta Seal 套件的一部分），使用学习型编码-解码框架在图片中嵌入 256 bit 载荷，是当前鲁棒性和不可见性最优的开源方案之一。OpenAI 从 2026 年起对 ChatGPT 和 API 生成的图片同时嵌入 C2PA 元数据和 SynthID 水印，实现双层溯源。\u003C\u002Fp>\u003Ch3>对你意味着什么\u003C\u002Fh3>\u003Cp>如果你使用 AI 生成的图片进行商业活动或社交媒体发布，\u003Cstrong>这些图片中很可能已经包含了隐形水印\u003C\u002Fstrong>。了解隐形水印的存在和工作原理，有助于你做出更明智的内容使用决策。而如果你是原创内容创作者，主动给自己的作品添加隐形水印（如使用 MeTool 的 DWT-DCT-SVD 工具），可以在版权纠纷中提供有力的溯源证据——这与 AI 厂商的水印体系互不干扰，可以叠加使用。\u003C\u002Fp>",[24,27,30,33,36,39],{"title":25,"content":26},"What Is an Invisible Watermark? Why Do You Need One?","\u003Cp>An invisible watermark hides information inside an image — the watermarked image looks identical to the original, completely undetectable by the human eye. Unlike visible watermarks (text overlays, logos) that ruin aesthetics, invisible watermarks leave the image untouched.\u003C\u002Fp>\u003Cp>The core use case is \u003Cstrong>anti-theft and copyright tracing\u003C\u002Fstrong>: if someone takes your photo, you can \"extract\" or \"verify\" the watermark you embedded earlier — proving the image is yours. This is powerful evidence in copyright disputes.\u003C\u002Fp>",{"title":28,"content":29},"Two Modes for Different Protection Needs","\u003Cp>MeTool offers two invisible watermark modes — just pick the one that fits your needs:\u003C\u002Fp>\u003Ch3>\"Embed Custom Text\" Mode\u003C\u002Fh3>\u003Cp>Hides any text you write (copyright notice, your name) in the image — fully readable when verified. Best for proving \u003Cstrong>\"who owns this image.\"\u003C\u002Fstrong> Resistant to noise, compression, and masking, but may fail if the image is rotated or heavily scaled.\u003C\u002Fp>\u003Ch3>\"Resist Rotation\u002FScaling\" Mode\u003C\u002Fh3>\u003Cp>Writes a password-derived invisible fingerprint into the image. Verification with the same password confirms whether the watermark is present. The key advantage: \u003Cstrong>survives rotation and scaling\u003C\u002Fstrong>, ideal for images shared across platforms where they may be transformed.\u003C\u002Fp>\u003Ch3>Real-World Comparison\u003C\u002Fh3>\u003Cp>Here's a test using the MeTool logo. First, the watermarked images — visually identical to the original:\u003C\u002Fp>\u003Cdiv style=\"display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;\">\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Foriginal.png\" alt=\"Original\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">Original\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fdwt-embed.png\" alt=\"Text embed\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">Text Embed\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv style=\"text-align:center;\">\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Ffft-embed.png\" alt=\"Rotation-resistant\" style=\"width:150px;border-radius:8px;border:1px solid #e2e8f0;\" \u002F>\u003Cdiv style=\"font-size:12px;color:#888;margin-top:4px;\">Rotation-Resistant\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>Then we \"edit\" the watermarked images to see what survives:\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>Edit\u003C\u002Fth>\u003Cth>After edit\u003C\u002Fth>\u003Cth>Text Embed\u003C\u002Fth>\u003Cth>Rotation-Resistant\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Brightness +30\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-brightness.png\" alt=\"Brightness\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 60%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>80×80 Mask\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-mask.png\" alt=\"Mask\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 73%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Rotate 90°\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-rotate90.png\" alt=\"Rotate\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 80%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Scale 75% round-trip\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-scale75.png\" alt=\"Scale\" width=\"80\" \u002F>\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅ 64%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Crop 90%\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-crop90.png\" alt=\"Crop 90%\" width=\"72\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>✅ 51%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Crop 50%\u003C\u002Ftd>\u003Ctd>\u003Cimg src=\"\u002Fimages\u002FblindWatermark\u002Fattack-crop50.png\" alt=\"Crop 50%\" width=\"50\" \u002F>\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003Ctd>❌\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>\u003Cstrong>How to choose?\u003C\u002Fstrong> Need embedded readable text (copyright) → text embed mode. Images might be rotated\u002Fscaled → rotation-resistant mode. You can use both on the same image.\u003C\u002Fp>",{"title":31,"content":32},"Details: Password, Format, and Privacy","\u003Cp>\u003Cstrong>Password protection:\u003C\u002Fstrong> Both modes use passwords. Embedding and verification require the same password. Default is \"metool\" — we recommend using your own.\u003C\u002Fp>\u003Cp>\u003Cstrong>PNG output:\u003C\u002Fstrong> Watermarked images are always saved as PNG. JPEG and other lossy formats would destroy the invisible watermark data. PNG is lossless and preserves everything.\u003C\u002Fp>\u003Cp>\u003Cstrong>100% local processing:\u003C\u002Fstrong> All computation happens in your browser. Images are never uploaded to any server — your privacy is guaranteed.\u003C\u002Fp>\u003Cp>\u003Cstrong>Auto brand suffix:\u003C\u002Fstrong> Text embed mode automatically appends \"from metool.online\" to your watermark text for easy tracing.\u003C\u002Fp>",{"title":34,"content":35},"Beyond Copyright: Using Invisible Watermarks to Verify Official Documents","\u003Cp>Once you understand that screenshots break watermarks, the \u003Cstrong>ideal use case\u003C\u002Fstrong> for invisible watermarks becomes clear: verifying the authenticity of \u003Cstrong>original image files distributed through official channels\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>Consider this scenario: an organization issues digital certificates as image files — diplomas, training completions, awards. These are trivially easy to forge: anyone can open the image in an editor, change the name and date, and re-save it. Traditional options are either ugly (visible watermarks that can be cropped) or expensive (QR codes linked to a backend database).\u003C\u002Fp>\u003Cp>With invisible watermarks, the workflow becomes:\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>The issuing organization prepares the certificate image\u003C\u002Fstrong> and, before distribution, uses MeTool to embed a watermark like \"Issued by XYZ Institution · Certificate No. 2026-0042 · Official\" using a private password. Output as PNG.\u003C\u002Fli>\u003Cli>\u003Cstrong>The watermarked PNG is distributed as the official version\u003C\u002Fstrong> — via email attachment, website download, or direct messaging (always as the original PNG file).\u003C\u002Fli>\u003Cli>\u003Cstrong>Recipients or verifying parties\u003C\u002Fstrong> upload the image to the verify tab, enter the institution's published password, and instantly extract the watermark text. If it reads \"Issued by XYZ Institution · Official\", the file is genuine. A forged copy cannot contain this watermark without the password.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>The key condition: \u003Cstrong>the institution distributes the original PNG file\u003C\u002Fstrong>, not a screenshot or re-processed version. As long as the original file stays intact through the distribution chain, the watermark verifies reliably every time.\u003C\u002Fp>\u003Ch3>Real-world applications\u003C\u002Fh3>\u003Cp>\u003Cstrong>① Educational certificates:\u003C\u002Fstrong> Online course completions, skill certifications, transcripts as images. Learners can self-verify and share with employers, who can independently check without contacting the issuer.\u003C\u002Fp>\u003Cp>\u003Cstrong>② Corporate authorizations and scanned agreements:\u003C\u002Fstrong> Embed a watermark before sending a scanned authorization letter. The recipient can verify it wasn't fabricated — and can prove it to third parties.\u003C\u002Fp>\u003Cp>\u003Cstrong>③ Event participation proof:\u003C\u002Fstrong> Competition, conference, or exhibition certificates with embedded watermarks let recipients prove authenticity to any third party.\u003C\u002Fp>\u003Cp>\u003Cstrong>④ Official announcements and statements:\u003C\u002Fstrong> Organizations can embed a watermark in an official notice image, making it easy to distinguish \"official original\" from \"screenshot taken out of context.\"\u003C\u002Fp>\u003Ch3>Comparison with traditional anti-forgery methods\u003C\u002Fh3>\u003Ctable>\u003Ctr>\u003Cth>Method\u003C\u002Fth>\u003Cth>Visual quality\u003C\u002Fth>\u003Cth>Verifiable\u003C\u002Fth>\u003Cth>Cost\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Visible watermark \u002F overlay\u003C\u002Ftd>\u003Ctd>❌ Ruins aesthetics\u003C\u002Ftd>\u003Ctd>❌ Can be cropped\u003C\u002Ftd>\u003Ctd>Low\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>QR code link\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅ Requires backend database\u003C\u002Ftd>\u003Ctd>High (server needed)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Blockchain timestamping\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>✅\u003C\u002Ftd>\u003Ctd>High (on-chain fees)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Invisible watermark (MeTool)\u003C\u002Ftd>\u003Ctd>✅ Completely invisible\u003C\u002Ftd>\u003Ctd>✅ Verified locally in browser\u003C\u002Ftd>\u003Ctd>Zero (browser-only)\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>No server, no database, no fees. Verification runs entirely in the browser on the recipient's device. For small organizations, independent creators, and personal brands, this is the lowest-cost, simplest-to-deploy anti-forgery approach available.\u003C\u002Fp>",{"title":37,"content":38},"Can You Verify a Watermark After a Screenshot? Understanding the Limits","\u003Cp>A common question: if someone screenshots your watermarked image, can you still verify ownership? \u003Cstrong>The answer: don't count on it working reliably.\u003C\u002Fstrong> A screenshot doesn't copy original pixels — it re-captures the image after display rendering, color conversion, possible resolution changes, and re-encoding. All of these can damage or weaken the frequency-domain watermark signal.\u003C\u002Fp>\u003Ch3>What does screenshotting destroy?\u003C\u002Fh3>\u003Cp>\u003Cstrong>Resolution changes:\u003C\u002Fstrong> Viewing the image scaled in a browser or image viewer, then screenshotting, effectively resamples the pixels. Text embed mode is sensitive to rotation and heavy scaling — the pixel layout after a screenshot differs from the original file, making verification likely to fail.\u003C\u002Fp>\u003Cp>\u003Cstrong>Color and brightness shifts:\u003C\u002Fstrong> Display color profiles, HDR, and night mode alter pixel values. In our tests, a brightness adjustment of +30 was enough to break text embed mode.\u003C\u002Fp>\u003Cp>\u003Cstrong>Lossy compression:\u003C\u002Fstrong> Saving a screenshot as JPEG further destroys watermark data. Use PNG format for screenshots when verifying.\u003C\u002Fp>\u003Ch3>How each mode performs against screenshots\u003C\u002Fh3>\u003Ctable>\u003Ctr>\u003Cth>Scenario\u003C\u002Fth>\u003Cth>Text Embed\u003C\u002Fth>\u003Cth>Rotation-Resistant\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Original PNG file verified directly\u003C\u002Ftd>\u003Ctd>✅ Reliable\u003C\u002Ftd>\u003Ctd>✅ Reliable\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>1:1 display, PNG screenshot\u003C\u002Ftd>\u003Ctd>⚠️ Not guaranteed\u003C\u002Ftd>\u003Ctd>⚠️ Possible\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Screenshot after scaled display\u003C\u002Ftd>\u003Ctd>❌ Likely fails\u003C\u002Ftd>\u003Ctd>⚠️ Depends on scale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>JPEG screenshot\u003C\u002Ftd>\u003Ctd>❌ Likely fails\u003C\u002Ftd>\u003Ctd>❌ Likely fails\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>\u003Cstrong>Practical advice:\u003C\u002Fstrong> Invisible watermarks work best for protecting \u003Cstrong>original file distribution\u003C\u002Fstrong> (sending PNGs directly, sharing via cloud storage, etc.). If you're concerned about screenshot theft, layer the rotation-resistant mode as an additional fingerprint — but don't rely on it as your only defense. When verifying, always select the same mode and password used during embedding.\u003C\u002Fp>",{"title":40,"content":41},"Invisible Watermarks in AI-Generated Images: What ChatGPT, Gemini, and Midjourney Are Doing","\u003Cp>In 2026, with the explosive growth of AI image generation tools like ChatGPT \u002F DALL-E, Google Gemini, Midjourney, and Stable Diffusion, \u003Cstrong>tracing and labeling AI-generated images\u003C\u002Fstrong> has become a global priority. Major AI companies are already embedding invisible watermarks in their generated images.\u003C\u002Fp>\u003Ch3>Google SynthID\u003C\u002Fh3>\u003Cp>Developed by Google DeepMind, SynthID has been embedded in over 10 billion images generated by Gemini and Imagen. SynthID is a \u003Cstrong>post-hoc\u003C\u002Fstrong> system: a trained neural network encoder embeds invisible signals after image generation. Unlike classical DWT-DCT schemes that embed in fixed frequency bins, SynthID's deep learning encoder spreads signals across the entire image, trained specifically to survive cropping, compression, and screenshotting. In late 2025, Google launched a public SynthID Detector for anyone to verify if content was produced by a Google model.\u003C\u002Fp>\u003Ch3>SynthID vs DWT-DCT-SVD: A Technical Comparison\u003C\u002Fh3>\u003Cp>MeTool uses \u003Cstrong>classical frequency-domain watermarking\u003C\u002Fstrong> (DWT-DCT-SVD), embedding bits at deterministic wavelet\u002FDCT coefficient positions with a user-defined password. SynthID uses \u003Cstrong>deep learning watermarking\u003C\u002Fstrong> with proprietary neural network models — only Google's official decoder can detect it. These are entirely different technical approaches and cannot cross-detect each other. However, they share the same goal: embedding traceable invisible marks without degrading image quality.\u003C\u002Fp>\u003Ch3>C2PA Standard (Content Provenance Alliance)\u003C\u002Fh3>\u003Cp>Initiated by Adobe, Microsoft, BBC and others, the C2PA (Coalition for Content Provenance and Authenticity) standard uses cryptographic signatures and metadata to attach provenance information to images. ChatGPT and Adobe Firefly images now carry C2PA metadata indicating \"generated by AI.\" However, C2PA relies on file metadata, which can be lost when screenshotted or re-saved — which is precisely why pixel-level watermarks like SynthID exist.\u003C\u002Fp>\u003Ch3>Meta Pixel Seal and OpenAI Watermarking Strategies\u003C\u002Fh3>\u003Cp>Meta developed Pixel Seal (part of the Meta Seal suite), a learned encoder-decoder framework embedding 256-bit payloads into images — one of the current state-of-the-art open-source solutions for robustness and imperceptibility. Since 2026, OpenAI embeds both C2PA metadata and SynthID watermarks in ChatGPT and API-generated images, achieving dual-layer provenance.\u003C\u002Fp>\u003Ch3>What This Means for You\u003C\u002Fh3>\u003Cp>If you use AI-generated images for commercial activities or social media, \u003Cstrong>those images likely already contain invisible watermarks\u003C\u002Fstrong>. Understanding how invisible watermarks work helps you make informed content decisions. And if you're an original content creator, proactively adding invisible watermarks using tools like MeTool's DWT-DCT-SVD system provides independent provenance evidence in copyright disputes — it works alongside AI vendor watermarks without interference.\u003C\u002Fp>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":46},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":48},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":50},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":52},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":54},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":56},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":58},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":60},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":62},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":64},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":66},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":68},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":70},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":72},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":74},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 6L9 17l-5-5\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":76},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7V5a2 2 0 0 1 2-2h2m10 0h2a2 2 0 0 1 2 2v2m0 10v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"3\"\u002F>\u003Cpath d=\"m16 16l-1.9-1.9\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":78},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M7 11V7a5 5 0 0 1 10 0v4\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":80},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":82},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M16 5h6m-3-3v6m2 3.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":84},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M16 3h5v5M8 3H3v5\"\u002F>\u003Cpath d=\"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3m12 6l6-6\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":86},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575a1 1 0 0 1 0 .696a10.8 10.8 0 0 1-1.444 2.49m-6.41-.679a3 3 0 0 1-4.242-4.242\"\u002F>\u003Cpath d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 4.446-5.143M2 2l20 20\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":88},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z\"\u002F>\u003Ccircle cx=\"12\" cy=\"13\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":90},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 12h4m-4-4h4m0 13v-3a2 2 0 0 0-4 0v3\"\u002F>\u003Cpath d=\"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2\"\u002F>\u003Cpath d=\"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":92},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":94},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":96},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"\u002F>\u003Cpath d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"\u002F>\u003Cpath d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":98},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":100},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>\u003Cpath d=\"m7 10l5 5l5-5\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":102},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13m10 2.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1zM5 22h14\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":104},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21\"\u002F>\u003Cpath d=\"m14 19l3 3v-5.5m0 5.5l3-3\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":106},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21m-7.752-9.91l8.828 8.828\"\u002F>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":108},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M14 4a1 1 0 0 1 1-1m0 7a1 1 0 0 1-1-1m7-5a1 1 0 0 0-1-1m1 6a1 1 0 0 1-1 1M3 7l3 3l3-3\"\u002F>\u003Cpath d=\"M6 10V5a2 2 0 0 1 2-2h2\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":110},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"\u002F>\u003Cpath d=\"M14 15H9v-5m7-7h5v5m0-5L9 15\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":112},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"5\" height=\"5\" x=\"3\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"5\" height=\"5\" x=\"16\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"5\" height=\"5\" x=\"3\" y=\"16\" rx=\"1\"\u002F>\u003Cpath d=\"M21 16h-3a2 2 0 0 0-2 2v3m5 0v.01M12 7v3a2 2 0 0 1-2 2H7m-4 0h.01M12 3h.01M12 16v.01M16 12h1m4 0v.01M12 21v-1\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":114},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M7 2h10M5 6h14\"\u002F>\u003Crect width=\"18\" height=\"12\" x=\"3\" y=\"10\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":116},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",null,{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":119},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":43,"top":43,"width":44,"height":44,"rotate":43,"vFlip":45,"hFlip":45,"body":121},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 12h-5m5-4h-5m9 9V5a2 2 0 0 0-2-2H4\"\u002F>\u003Cpath d=\"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3\"\u002F>\u003C\u002Fg>",1781354455652]