Images / video to GIF
Images in order into a GIF · video clips sampled by frame rate
点击选择(可多选)或拖拽多张图片到此处
JPG / PNG / WebP / BMP;超过最大边长的图只缩小、不放大
点击选择或拖拽一个视频文件到此处
从第 0 秒开始按帧率取样(可用下面的起止秒裁剪)
预览
GIF 是索引色格式(最多 256 色/帧),色块少的图压得小,照片可能有轻微色带。
GIF 体积为什么时大时小
GIF 天生只认 256 种颜色。每帧都要从原图挑出一个调色板(本页用中位切割算法挑 256 个代表色),像素只存"第几号颜色"的索引。纯色/插画/截图这种颜色本来就少的内容压得极小;照片颜色多,压缩时要丢颜色,会出现色带,体积也不一定小——这不是故障,是格式的天花板。
体积 ≈ 帧数 × 每帧像素数 × 压缩率。所以控制体积的杠杆很直接:最大边长调小(像素数平方级下降)、帧数调少(帧率/时长)、循环次数与文件大小无关(只存一个循环标记)。本页生成完先给你看实际体积与帧数,不满意改参数重新生成即可,不用下载再试。
全程在本机。图片解码、视频逐帧取样、调色板量化、GIF 编码(自托管 omggif)都发生在浏览器里,文件一个字节都不上传;视频模式需要浏览器能解码该格式(取决于设备),解码不了会直接提示而不是给你空结果。
FAQ
Anything your browser can decode - typically MP4, WebM and MOV, depending on the device; the page samples the video frame by frame at the frame rate you set and assembles the GIF. Videos longer than 60 seconds are sampled evenly within 60 seconds, and the page honestly shows the number of frames actually taken.
GIF is an indexed-color format - at most 256 colors, each pixel storing only a palette index. Graphics with flat color areas shrink dramatically; photographs can grow and show banding. To control the size, lowering the maximum edge and the frame count works best.
Video input is sampled by frame rate, 1-15 frames per second (default 5); image input uses a dwell time per picture, 0.5 seconds by default; loop count 0 means loop forever, or set an exact number.
No. Decoding, sampling, quantizing and encoding all run in the browser (the GIF encoder is the self-hosted omggif); not one byte of your files leaves the machine, and reloading clears everything. The page has no upload endpoint at all - verify it yourself in the developer tools Network panel.
Sampling a video has to seek and decode frame by frame, and phone browsers have limited memory and decode speed. Keep the maximum edge at 640 or under, the video under 30 seconds and the frame rate at 5 or below; batch-converting plain images to GIF is near instant.