三种工具对应三种活

静态截图加标注贴图用 Snipaste,短操作演示录成动图用 ScreenToGif,批量转换压缩和自动化用 ffmpeg。别用 ffmpeg 去做一张截图标注,也别用 GUI 工具去压两百个视频。Snipaste 最被低估的是贴图功能:截图后按 F3 把图钉在屏幕最上层,写代码时把接口文档或设计稿浮在旁边对着看,比来回 Alt+Tab 省事得多;贴图窗口能调透明度,透过它还能看见底下的编辑器。

Snipaste 的快捷键与设置

  • F1 截图,框选后直接画箭头、序号、马赛克、文字,取色时显示 RGB 和 HEX。
  • F3 把剪贴板里的图贴成置顶窗口,双击关闭,Ctrl+滚轮缩放,滚轮调透明度。
  • Shift+F1 取色并复制色值,写 CSS 时高频使用。
  • 设置里把热键改成不和输入法冲突的组合,勾开机自启、"保存到文件同时复制到剪贴板"。

高 DPI 屏截图发虚,多半是显示器缩放设了 125% 或 150% 而程序没声明 DPI 感知,在 Snipaste 的兼容性设置里把 DPI 缩放改成"应用程序"级,或拿 Win+Shift+S 的结果对比一次定位是谁的问题。

ScreenToGif 与 ffmpeg 命令

ScreenToGif 录完逐帧编辑,删掉重复帧和停顿、把帧率压到 10 到 15、尺寸缩到 800 宽,GIF 体积能小一个数量级;导出时可选 GIF、APNG 或 MP4。要自动化或已有视频素材就上 ffmpeg,Windows 用 gdigrab 抓桌面:

ffmpeg -f gdigrab -framerate 15 -i desktop -c:v libx264 -pix_fmt yuv420p out.mp4
ffmpeg -f gdigrab -framerate 15 -offset_x 1920 -offset_y 0 -video_size 1920x1080 -i desktop out.mp4
ffmpeg -ss 00:00:05 -t 12 -i out.mp4 -c copy clip.mp4

转 GIF 别一步到位,先生成调色板再映射,颜色过渡才不会花屏,这也是很多"ffmpeg 转出来颜色发灰"的根因:

ffmpeg -i clip.mp4 -vf "fps=12,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 demo.gif
ffmpeg -i clip.mp4 -vf "fps=12,scale=640:-1:flags=lanczos" -c:v libx264 -crf 28 small.mp4

踩坑清单

  • GIF 体积爆炸:按"降帧率 → 缩尺寸 → 减色数"的顺序来,纯 UI 演示 12 fps 足够,别一上来就上 paletteuse。
  • 录出来黑屏:gdigrab 抓的是 GDI,硬件加速的全屏游戏或某些播放器窗口会是黑的,改用 -f dshow 或显卡自带录制。
  • 多显示器:默认只抓主屏,用 -offset_x / -offset_y 指定副屏左上角坐标,-video_size 限区域。
  • 透明与声音:GIF 不支持半透明和音轨,要半透明用 APNG 或 WebP,要声音直接交 MP4。
  • 截图尺寸:写博客时按正文宽度统一缩到 800 或 1200,别把 4K 原图直接贴上去,读者加载慢且排版会崩。