GIF 加水印
作者 Calvin Sun
在浏览器中为动态 GIF 添加文字、Logo 或平铺水印。可调整位置、透明度、尺寸与出现时间——文件不会离开你的设备。
点击选择 GIF 文件
或将 GIF 拖放到此处
也可以从剪贴板粘贴 GIF。
GIF和水印仅在浏览器中处理,不会上传到服务器。
这个水印工具如何工作
- • 上传文件只在本地处理。浏览器解码 GIF,用水印绘制到画布,再用 gif.js 重新编码动画。
- • 实时预览只更新当前帧。完整编码会在你点击「添加水印」后开始。
- • 文字会先栅格化成透明图层,因此预览与导出更一致,也不依赖 FFmpeg 字体。
- • OmniGIF 不会在下载的 GIF 上加自己的水印。
GIF 只有 256 色和二值透明,柔和阴影与半透明 Logo 编码后可能出现轻微色阶。
不用安装桌面软件,也能在线给动态 GIF 加水印。OmniGIF 会解码动画、让你放置文字或 Logo,然后在本地重新编码 GIF89a:
- 上传 GIF: 点击、拖放或粘贴不超过 10MB 的 GIF。工具会校验类型、扩展名和文件头。
- 添加水印: 创建文字图层、上传 Logo,或开启平铺。在画布上拖动、缩放和旋转。
- 调整样式与时间: 设置透明度、混合模式、九宫格位置,以及可选的起止帧。预览会实时更新。
- 导出动画: 点击「添加水印」后按原始延迟编码每一帧,然后对比并下载。
这是给动态 GIF 加水印、加 Logo 或加文字水印的实用方式,全程不出浏览器。
GIF89a 的 Graphic Control Extension 可以为每一帧指定透明索引和延迟时间。W3C GIF89a
文字水印是给动态 GIF 加上版权行、账号或字幕的最快方式:
- 多行文字、手动换行和版权快捷插入
- 字体、字重、斜体、下划线、对齐、行高和字距
- 填充色、描边、阴影、背景框、内边距和圆角
- Subtle、Copyright、Bold、Outline、Caption 等样式预设
文字会先画到透明图层,因此实时预览和最终导出更接近,也不依赖编码器自带字体。
fillText() 方法会在给定的 (x, y) 位置绘制(填充)文本。MDN Web Docs
需要品牌保护、单靠文字不够时,可以把 Logo 加到 GIF 上:
- 支持 PNG、WebP、JPEG 和静态 GIF,只在浏览器中读取
- 合成时保留透明 PNG 的 Alpha 通道
- 包含、覆盖或拉伸适配,以及翻转、缩放和圆角
- 可选裁掉水印四周的透明留白
本工具不加载远程 Logo URL,避免污染 Canvas 导致导出失败。
如果从其他源绘制未经 CORS 许可的图片,画布会被污染,随后无法导出。MDN Web Docs
平铺水印会重复文字或 Logo 单元,裁掉角落也无法去掉标记:
- 生成一张透明总图层,而不是大量独立图章
- 可调水平/垂直间距、行偏移和整体旋转
- 稀疏斜向、均衡、密铺三种密度预设
- 文字和 Logo 都可以作为平铺单元
适合截图、审阅稿,以及可能被裁切后再使用的 GIF。
globalAlpha 可以绘制半透明叠加层,然后再恢复之前的透明度继续绘制。MDN Web Docs
给 GIF 加水印不只是默认贴在角落。OmniGIF 用原图像素保存位置:
- 九宫格、精确 X/Y、宽高和相对尺寸
- 安全边距吸附,并防止完全拖出画布
- 混合模式、旋转、透明度,以及淡入或缓慢位移等轻量动态效果
- 每个图层的时间/帧范围会与时间轴双向同步
预览缩放不会改变输出尺寸。调整 GIF 尺寸时,可以选择让水印一起缩放,或保持原来的像素大小。
drawImage() 可以把源图像绘制到任意大小的目标矩形中。MDN Web Docs
给动态 GIF 加水印是为了保留署名、减少随意转载,以及标记草稿:
- 在产品演示或表情包角落放上小 Logo
- 在社交短片上加半透明版权行
- 平铺审阅稿,裁切后的静帧仍能看出归属
- 只在循环的某一段显示字幕或标记
在线 GIF 水印应当可编辑、保留动画时序,并且不会强制加上网站自己的水印。
GIF 是一种位图格式,通过多帧和 Graphic Control Extension 支持动画。MDN Web Docs
OmniGIF 以浏览器本地处理为核心。这个水印工具同样如此:
- GIF和水印仅在浏览器中处理,不会上传到服务器。
- 保存的模板只存在你设备的 localStorage,不会上传。
- 统计事件不包含文件名、Logo 像素或水印文字。
- 导出的 GIF 不含 OmniGIF 自己的水印。
如果需要在不可信网络下给 GIF 加水印,本地处理是更稳妥的默认选择。
用户选择的 File 对象可以完全在浏览器中通过 FileReader 或 URL.createObjectURL 读取。MDN Web Docs
GIF 加水印常见问题
上传 GIF,添加文字或 Logo 图层,拖到合适位置,然后点击「添加水印」。OmniGIF 会在浏览器中处理每一帧,并保留原始帧顺序。
可以。Logo 会叠加到每一帧上;除非你设置了时间或帧范围,否则会覆盖整段动画。
可以。支持多个文字图层、多行内容、版权符号、描边、阴影和背景框。字体来自 OmniGIF 已有的系统字体与开源字体。
可以。每个图层都有透明度,PNG Logo 也会保留 Alpha。最终 GIF 仍是 256 色,过柔的半透明可能略有色阶。
可以。每个图层都能设置自定义时间范围或帧范围,也可用「前半段」「最后一帧」等快捷操作。
可以。可叠加多个文字和 Logo,调整顺序、隐藏或锁定,并让它们在不同时间出现。
可以。在文字或 Logo 图层开启平铺,把水印重复铺满画面,比只盖住角落更难被裁掉。
默认会保留。除非你在编码设置里改成统一帧间隔。动态效果不会改变 GIF 总时长。
不会。GIF和水印仅在浏览器中处理,不会上传到服务器。只有你主动保存时,模板才会写入本地存储。
不会。下载结果只包含你添加的水印,OmniGIF 不会盖上自己的 Logo 或站点名。