鼓捣了一个水印工具,单文件,完全离线,用着放心。

:artist_palette:开箱即用,安全地为你的隐私图片添加水印,完全离线。

就一个html文件,AI写的,适配移动端,佬友们来修修BUG吧 :bili_057:

在线体验:https://safemark.pages.dev

代码:GitHub - just22tu/SafeMark: 🎨开箱即用,完全离线,安全地为你的隐私图片添加水印。Ready to use, completely offline, securely add watermarks to your private images.

:locked: 完全离线:无需互联网连接,确保您的隐私和安全。

:artist_palette: 可自定义的水印:通过调整文本颜色、不透明度、角度、文字间距和行距来定制您的水印,并提供多种字体选项。

:rocket: 灵活的图像支持:使用拖放、多选或直接粘贴,可轻松一次将水印添加到多幅图像中。

31 个赞

感谢大佬分享啦!

2 个赞

哈哈,我也鼓捣了个类似的,不过调整参数是,自己写值,这样精确一点

2 个赞

感谢分享。

2 个赞

感谢分享

1 个赞

感谢大佬分享

1 个赞

我也分享一个自己一直用的。

直接把以下代码输入浏览器地址栏就可用,加入书签也行。

data:text/html;base64,PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz16aD48aGVhZD48bWV0YSBjaGFyc2V0PVVURi04Pjx0aXRsZT7msLTljbDliqnmiYs8L3RpdGxlPjxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiIG5hbWU9dmlld3BvcnQ+PHN0eWxlPmJvZHl7bWFyZ2luOmF1dG87bWF4LXdpZHRoOjYwdmh9aW1ne2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NXB4O3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94fWNhbnZhc3t3aWR0aDowO2hlaWdodDowfWxhYmVse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXRvcDo4cHh9I2Ryb3AtYXJlYXtib3JkZXI6MnB4IGRhc2hlZCAjY2NjO3BhZGRpbmc6MTBweDt0ZXh0LWFsaWduOmNlbnRlcn0jdXBsb2FkLWlucHV0e2Rpc3BsYXk6bm9uZX08L3N0eWxlPjwvaGVhZD48Ym9keT48Y2FudmFzPjwvY2FudmFzPjxhIGRvd25sb2FkIGlkPWltZ2xpbms+PGltZz48L2E+PGRpdj48ZGl2IGlkPWRyb3AtYXJlYT48aW5wdXQgaWQ9dXBsb2FkLWlucHV0IHR5cGU9ZmlsZSBhY2NlcHQ9aW1hZ2UvKj4g5ouW5pS+5oiW54K55Ye76YCJ5oup5Zu+54mHPC9kaXY+PGxhYmVsPuawtOWNsOaWh+Wtl++8miA8aW5wdXQgaWQ9Y29udGVudCB0eXBlPXRleHQgdmFsdWU95LuF5L6bWFjlrp7lkI3orqTor4Hkvb/nlKg+PC9sYWJlbD48bGFiZWw+5rC05Y2w6aKc6Imy77yaIDxpbnB1dCBpZD1jb2xvciB0eXBlPWNvbG9yIHZhbHVlPSM2NjY2NjY+PC9sYWJlbD48bGFiZWw+5Zu+54mH5a695bqm77yaIDxpbnB1dCBpZD13aWR0aCB0eXBlPW51bWJlciB2YWx1ZT0yMDQ4PjwvbGFiZWw+PGxhYmVsPuWbvueJh+i0qOmHj++8miA8aW5wdXQgaWQ9cXVhbGl0eSB0eXBlPXJhbmdlIHZhbHVlPTgwIG1heD0xMDAgbWluPTE+PHNwYW4gaWQ9aW1nc2l6ZT48L3NwYW4+PC9sYWJlbD48bGFiZWw+5LiN6YCP5piO5bqm77yaIDxpbnB1dCBpZD1hbHBoYSB0eXBlPXJhbmdlIHZhbHVlPTIwIG1heD0xMDAgbWluPTEwPjwvbGFiZWw+PGxhYmVsPuaWh+Wtl+Wkp+Wwj++8miA8aW5wdXQgaWQ9c2l6ZSB0eXBlPXJhbmdlIHZhbHVlPTQgbWF4PTEwIG1pbj0xPjwvbGFiZWw+PGxhYmVsPuaXi+i9rOinkuW6pu+8miA8aW5wdXQgaWQ9YW5nbGUgdHlwZT1yYW5nZSB2YWx1ZT0tNDUgbWF4PTE4MCBtaW49LTE4MD48L2xhYmVsPjxsYWJlbD7msLTljbDooYzot53vvJogPGlucHV0IGlkPWdhcCB0eXBlPXJhbmdlIHZhbHVlPTE1MCBtYXg9MzAwIG1pbj0yMD48L2xhYmVsPjxsYWJlbD7msLTljbDlrZfkvZPvvJogPGlucHV0IGlkPWZvbnQgdHlwZT10ZXh0IHZhbHVlPXNhbnMtc2VyaWY+PC9sYWJlbD48bGFiZWw+PGEgZG93bmxvYWQgaWQ9c2F2ZWxpbmsgaHJlZj0iamF2YXNjcmlwdDphbGVydCgn6K+35YWI5omT5byA5Zu+54mHJykiPuS/neWtmOWbvueJhzwvYT48L2xhYmVsPjwvZGl2PjxzY3JpcHQ+dmFyIGltZz1udWxsO2Z1bmN0aW9uIHJlcGFpbnQoKXtpZihpbWcpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjYW52YXMiKVswXS5nZXRDb250ZXh0KCIyZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndpZHRoIikudmFsdWUsbj1pbWcuaGVpZ2h0KnQvaW1nLndpZHRoLGE9KGUuY2FudmFzLndpZHRoPXQsZS5jYW52YXMuaGVpZ2h0PW4sTWF0aC5tYXgobix0KSksZD0oZS5yZXN0b3JlKCksZS5kcmF3SW1hZ2UoaW1nLDAsMCx0LG4pLGUuZmlsbFN0eWxlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xvciIpLnZhbHVlLGUuZ2xvYmFsQWxwaGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFscGhhIikudmFsdWUvMTAwLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXplIikudmFsdWUqYS8xMDApLGw9KGUuZm9udD1kKydweCAiJytkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9udCIpLnZhbHVlKyciJyxlLnRleHRCYXNlbGluZT0ibWlkZGxlIixlLnJvdGF0ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5nbGUiKS52YWx1ZSpNYXRoLlBJLzE4MCksZCpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ2FwIikudmFsdWUvMTAwKSxvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50IikudmFsdWU7aWYoby5sZW5ndGgpe2Zvcih2YXIgcj1NYXRoLnNxcnQoYSphKjIpLGk9ZS5tZWFzdXJlVGV4dChvKS53aWR0aCxtPS1hLGM9ITE7bTw9cjttKz1kK2wsYz0hYylmb3IodmFyIGc9LWEtKGM/aS8yOjApO2c8PXIrKGM/aS8yOjApO2crPWkrZCllLmZpbGxUZXh0KG8sZyxtKTt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWFsaXR5IikudmFsdWU7ZS5jYW52YXMudG9CbG9iKGU9Pnt2YXIgdD1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWdzaXplIikuaW5uZXJIVE1MPWAoJHtNYXRoLmNlaWwoZS5zaXplLzEwMjQpfSBLQilgLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5zcmM9dCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nbGluayIpLmhyZWY9dCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZWxpbmsiKS5ocmVmPXR9LCJpbWFnZS9qcGVnIix0LzEwMCl9fX1mdW5jdGlvbiBjcmVhdGVCaXRtYXAoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dCh0aGlzKX0pLG4uc3JjPVVSTC5jcmVhdGVPYmplY3RVUkwoZSl9ZnVuY3Rpb24gaGFuZGxlSW1hZ2VVcGxvYWQoZSl7Y3JlYXRlQml0bWFwKGUsZnVuY3Rpb24oZSl7aW1nPWUscmVwYWludCgpfSk7ZT1lLm5hbWUuc3BsaXQoIi4iKTtlLnNwbGljZSgtMSwwLCJ3YXRlcm1hcmtlZCIpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWdsaW5rIikuZG93bmxvYWQ9ZS5qb2luKCIuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVsaW5rIikuZG93bmxvYWQ9ZS5qb2luKCIuIil9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbihlKXsiZmlsZSI9PT1lLnRhcmdldC50eXBlP2UudGFyZ2V0LmZpbGVzLmxlbmd0aCYmaGFuZGxlSW1hZ2VVcGxvYWQoZS50YXJnZXQuZmlsZXNbMF0pOnJlcGFpbnQoKX0pO3ZhciBkcm9wQXJlYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJvcC1hcmVhIik7ZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxkcm9wQXJlYS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiNmMmYyZjIifSksZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZHJvcEFyZWEuc3R5bGUuYmFja2dyb3VuZENvbG9yPSIifSksZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGRyb3BBcmVhLnN0eWxlLmJhY2tncm91bmRDb2xvcj0iIixoYW5kbGVJbWFnZVVwbG9hZChlLmRhdGFUcmFuc2Zlci5maWxlc1swXSl9KSxkcm9wQXJlYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBsb2FkLWlucHV0IikuY2xpY2soKX0pPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4=

开源,我在前人基础上改的,加了拖拽。

8 个赞

感谢佬们分享

1 个赞

感谢分享

1 个赞

结合大佬们的项目,又更新了一下

建议贴个演示图片

好嘞 大佬 更新了一张贴图

1 个赞

感谢大佬 借鉴了一下你的行间距思路

本人比较懒,拖动一下就ok了 :bili_045:

感谢分享,看着不错啊

感谢分享

感谢分享

强!感谢佬的分享

感谢佬的分享, 放workers里了 :lark_001:

666 感谢大佬分享,效果杠杠的