GIF Text OverlayGIF 加字工具

Add a caption to the first frame of a GIF and export a clean PNG — free, no watermark, and your file never leaves your device. Read the honest note below about animated GIFs.给 GIF 的首帧加上字幕,导出干净的 PNG——免费、无水印,文件永远不会离开你的设备。关于动态 GIF 请看下面的如实说明。

Please read:请注意: A web browser can only draw the first frame of an animated GIF onto a canvas, and re-encoding every frame back into an animated GIF would require bundling a large GIF decoder/encoder (we keep this page 100% offline, zero dependencies). So this tool exports a high-resolution PNG of the first frame with your caption — it does not produce a re-animated GIF. Use the PNG as a caption card, sticker or thumbnail. 浏览器只能把动态 GIF 的第一帧画到画布上,而把每一帧重新编码回动态 GIF 需要内置一个大型 GIF 解码/编码库(本页坚持 100% 离线、零依赖)。因此本工具导出的是带字幕的首帧高清 PNG——它不会重新生成动态 GIF。这张 PNG 可作为字幕卡、贴纸或缩略图使用。
Drop a GIF or image here拖入 GIF 或图片 GIF / JPG / PNG / WebP — we read the first frame支持 GIF / JPG / PNG / WebP——我们读取首帧

How to Use使用方法

  1. Upload a GIF. Tap "Upload GIF or Image" or drag a GIF (or any JPG/PNG/WebP) onto the canvas. The browser shows its first frame.上传 GIF。点击「上传 GIF 或图片」,或把 GIF(也支持 JPG/PNG/WebP)拖入画布,浏览器会显示它的第一帧。
  2. Type your captions. Add a top and/or bottom line in the classic meme style.输入字幕。按经典表情包风格加上部和/或下部一行。
  3. Tune the size. Adjust the font size and keep UPPERCASE on for the authentic look.调字号。调节字号,保持「大写」开启以呈现正宗效果。
  4. Download the PNG. Tap "Download PNG". Remember: this is a still image of the first frame, not an animated GIF.下载 PNG。点击「下载 PNG」。请记住:这是首帧的静态图,不是动态 GIF。

FAQ常见问题

Can this tool add captions to every frame of an animated GIF?这个工具能给动态 GIF 的每一帧都加字幕吗?

No, and we say so honestly. A browser can only draw the first frame of an animated GIF to canvas, and re-encoding every frame needs a bundled GIF encoder. This tool exports a high-resolution PNG of the first frame.

不能,我们如实说明。浏览器只能把动态 GIF 的首帧画到画布,重新编码每一帧需要内置 GIF 编码器。本工具导出的是首帧高清 PNG。

What can I do with the exported PNG?导出的 PNG 能用来做什么?

Use it as a static caption card, a thumbnail, a Discord sticker, or upload it to any platform that accepts PNG.

可作静态字幕卡、缩略图、Discord 贴纸,或上传到任何接受 PNG 的平台。

Why not just bundle a GIF encoder?为什么不内置一个 GIF 编码器?

We keep the page 100% offline and dependency-free. A full GIF decoder/encoder is a large library that would slow the page and break the file:// offline promise.

我们坚持本页 100% 离线、零依赖。完整的 GIF 解码/编码库体积很大,会拖慢页面、破坏 file:// 离线可用的承诺。

Is it free and private?它免费吗?保护隐私吗?

Yes. Free, no watermark, no sign-up, and your GIF never leaves your device.

是的。免费、无水印、无需注册,你的 GIF 永远不会离开你的设备。

Related Tools相关工具

Classic meme maker
Free

Classic Meme Maker经典表情包生成器

Top & bottom captions on any photo.

给任意照片加上下字幕。

Meme template library
Free

Meme Template Library表情包模板库

16 ready-made templates.

16 个现成模板。

Meme caption editor
Free

Meme Caption Editor表情包字幕编辑器

Drag and rotate captions.

拖拽旋转字幕。

Transparent sticker maker
Free

Transparent Sticker Maker透明贴纸制作器

Cut out transparent PNGs.

抠出透明 PNG。

Nine grid splitter
Free

9-Grid Splitter九宫格切图工具

Split an image into 3x3.

把图切成 3x3。

Why This Tool Honestly Captions the First Frame为什么这个工具诚实地只给首帧加字

The technical reality of animated GIFs in the browser浏览器处理动态 GIF 的技术现实

Animated GIFs are a clever but old container: a sequence of small palette-indexed frames, each with its own delay and a "disposal" rule that says how to clear the screen before the next frame draws. When you drop a GIF into an HTML <img> tag, the browser's internal player animates it beautifully. But the moment you try to draw that same GIF onto a canvas — which is the only way to edit it in pure JavaScript — almost every browser hands you the first frame only. The internal decoder exposes no per-frame API to web pages. To caption every frame, a web app would have to (1) parse the GIF binary itself, (2) run its LZW decompressor on every frame, (3) composite the frames according to disposal rules, (4) draw your caption on each, and (5) re-encode the whole thing back into animated GIF bytes with its own LZW compressor. That is roughly a thousand lines of fiddly binary code, and the result needs a bundled library — which directly conflicts with this site's promise of a zero-dependency, offline, double-click-the-file tool. So instead of pretending, we built what genuinely works: read the first frame, caption it, export a crisp PNG.

动态 GIF 是一种巧妙但古老的容器:一串调色板索引的小帧,每帧带自己的延时和「处置规则」(下一帧绘制前如何清屏)。当你把 GIF 放进 HTML <img> 标签,浏览器内置播放器会漂亮地动起来。但一旦你想把同一张 GIF 画到 canvas 上——而这是纯 JS 编辑它的唯一办法——几乎所有浏览器都只给你第一帧。内置解码器不向网页暴露逐帧接口。要给每一帧加字,网页应用必须:(1) 自己解析 GIF 二进制,(2) 对每帧跑 LZW 解压,(3) 按处置规则合成帧,(4) 逐帧绘制字幕,(5) 用自己的 LZW 压缩器把整段重新编码回动态 GIF 字节。这是大约一千行容易出错的二进制代码,而且结果需要打包一个库——这直接违背本站「零依赖、离线、双击文件即用」的承诺。所以我们不装,而是做真正可行的事:读首帧、加字幕、导出清晰 PNG。

What a first-frame caption is still good for首帧加字仍然有什么用

When you actually need the animation back什么时候你确实需要动画回来

If the joke really depends on motion — a cat walking, a button pressing, a loop that surprises on the third pass — a still PNG loses it. In that case the honest path is to edit the original file in a desktop or web editor that already bundles a GIF encoder (most online "GIF caption" tools do, at the cost of uploading your file to their server). We are not that tool, and we would rather say so than ship a fake preview that exports the wrong thing. For still-image memes where a caption matters, our Classic Meme Maker gives you the full top-and-bottom treatment, and the Meme Caption Editor lets you place text anywhere. Read our longer take on the trade-offs in GIF vs Video Meme: Which Format When.

如果笑点真的依赖动作——猫在走、按钮在按、第三遍循环才反转——静态 PNG 就丢了它。这时诚实的做法是去用一个已经内置 GIF 编码器的桌面或网页编辑器(大多数在线「GIF 加字」工具确实有,但代价是把文件上传到他们服务器)。我们不是那种工具,我们宁愿明说,也不愿给你一个假预览、最后导出错误的东西。对于字幕才是重点的静态表情包,经典表情包生成器给你完整上下字幕,表情包字幕编辑器让文字任意摆放。关于取舍的更长讨论见GIF 与视频表情包:何时用哪种。

Privacy, as always一如既往的隐私

Because the whole job runs in your browser, your GIF never touches our server — we never even see the file. The page works offline, there is no account, and the export is a direct canvas.toDataURL download on your own machine. If you want a transparent version of your cut-out for sticker packs, run the result through our Transparent Sticker Maker. Your images never leave your device.

由于整个处理都在浏览器里跑,你的 GIF 从不经过我们的服务器——我们根本看不到这个文件。页面离线可用、没有账号,导出就是你本机上一次直接的 canvas.toDataURL 下载。如果想把抠出来的部分做成贴纸包用的透明底,就把结果放进透明贴纸制作器。你的图片永远不会离开你的设备。

Choosing which frame to caption该给哪一帧加字

Because you only get one frame, picking it matters. Most animated GIFs loop through a small cycle, and one moment in that cycle carries the most information: the exact freeze frame of a reaction, the peak of a gesture, the split second before something falls over. When you upload a GIF here, the browser gives you the very first frame, which is often not the funniest one. The practical workaround is simple — open the GIF on your phone or computer, watch it loop, and pause on the frame you want. Then take a quick screenshot, crop it, and upload that still image instead of the GIF. You get full control over which moment your caption sits on, and the exported PNG looks identical in quality. Treat this tool as a "first frame plus your own chosen frame" captioner: for reaction shots, the chosen screenshot almost always wins.

既然只能选一帧,选哪帧就很关键。大多数动态 GIF 在一个小循环里重复,而循环中总有一个瞬间信息量最大:反应表情定格的那一刹那、手势的顶点、东西倒下前的零点几秒。你在这里上传 GIF 时,浏览器给你的是第一帧——而它往往不是最好笑的那一帧。实际变通很简单:在手机或电脑上打开 GIF,看它循环,停在你想要的那一帧,快速截屏、裁一下,然后上传那张静图而不是 GIF。这样你能完全控制字幕落在哪一刻,导出的 PNG 画质毫无差别。把本工具理解成「首帧加你自己挑的帧」的加字器:对反应图来说,自己挑的截图几乎总是赢。

Why we refuse to fake it我们为什么不假装

You have probably seen pages that promise "add text to GIFs online" and then silently either watermark the result, ask you to sign up, or export a strangely frozen frame nobody notices. We took the other road. A caption card tool that lies about its output is worse than no tool, because it wastes your time after you already did the work. This page tells you up front, on a colored notice, what it does and does not do, so you never download a file expecting animation and finding a still. That honesty is the same promise behind the rest of this site: no fake AI, no hidden uploads, no feature you have to pay to discover is broken. If per-frame GIF captions ever become something we can do without shipping a megabyte of encoder and breaking the offline file, you will find it here — announced plainly, not smuggled in as a surprise.

你大概见过那种承诺「在线给 GIF 加字」的页面,然后悄悄加水印、要你注册,或者导出一个没人注意的奇怪定格帧。我们走了另一条路:一个对输出撒谎的字幕工具,比没有工具更糟,因为它在你都做完功课后浪费你的时间。本页在最前面用一条彩色提示明说它能做什么、不能做什么,这样你绝不会带着「应该是动画」的期待下载一个静图。这份诚实和本站其余部分是同一个承诺:不假装 AI、不偷偷上传、没有那种「付了钱才发现是坏的」的功能。如果逐帧 GIF 加字将来能在不塞一兆编码器、不破坏离线文件的前提下做到,你会在这里看到它——明明白白地发布,而不是当成惊喜偷塞进来。

Upload a GIF above, type your top and bottom lines, and download a captioned PNG — fast, free, and exactly what this page honestly does.

在上方上传 GIF,写好上下两行,下载带字幕的 PNG——快速、免费,而且正是本页诚实地做到的事。