GIF 制作器,免费
从图片创建 GIF 动图。上传照片,重新排序,调整时序并即时下载您的动画。
🔒 100% 在浏览器中运行第 1 步:上传图片
📸 将图片拖到此处或点击上传
支持 JPG、PNG、WebP 及其他图片格式。可选择多个文件。
您的 GIF
使用说明
- 上传图片帧。拖放或选择两张及以上JPG、PNG或WebP文件。每张图片按上传顺序成为动画的一帧。浏览器在本地读取,不会上传至服务器。
- 如需调整顺序,点击某帧并使用「上移」/「下移」按钮修改排列。动画按从上到下的顺序播放。
- 设置帧时间。帧延迟滑块控制每帧的显示时长(50-2000毫秒)。100毫秒 = 每秒10帧,200毫秒 = 5fps,500毫秒 = 较慢的幻灯片节奏。
- 选择循环次数和质量。循环 = 0表示无限循环(默认值,也是大多数聊天客户端的预期行为);1表示播放一次。质量1输出最佳但编码最慢;10-15是实用的甜蜜点。
- 选择输出宽度。自动保持源尺寸;400-1000像素预设会在编码前将每帧缩小至目标宽度。宽度越小,文件体积越小。
- 点击「创建GIF」并下载。编码在您的浏览器中进行。进度条完成后,预览随即出现,一键即可下载文件。
有视频片段?专用的在线视频转GIF工具工具可从MP4/WebM/MOV文件中提取帧。本工具适用于图像序列流程:截图、设计稿、需要逐张播放的照片。
GIF格式快速回顾
Graphics Interchange Format由CompuServe于1987年6月15日发布,由史蒂夫威尔海特领导的工程团队设计。1989年的GIF89a修订版(至今仍是每个浏览器解析的版本)新增了动画定时、单比特透明度和应用特定的元数据块。循环动画是GIF现在最广为人知的功能,但它并不在原始规范中:Netscape于1995年9月通过Navigator 2.0以「NETSCAPE2.0」应用扩展块的形式加入,这19字节的数据块至今仍是每个编码器声明循环次数的方式。压缩采用Lempel-Ziv-Welch(LZW)算法;Unisys持有的美国LZW专利于2003年6月20日到期(国际上类似日期延续至2004年中),因此GIF已无专利限制二十余年。
GIF为何比预期更大
格式的三个结构性设计叠加,使GIF成为2026年发送动画的一种笨重方式:
- 每帧256色。每帧携带一个8位索引调色板,从24位RGB空间中选取256个条目。照片和渐变必须量化到该调色板,要么损失细节(色带),要么用抖动花纹掩盖损失(消耗字节)。
- 无帧间预测。现代视频编解码器存储一帧关键帧加上运动增量流;GIF独立存储每一帧。一个30帧的动画本质上是30张独立压缩图像堆叠在一个文件中。
- 单比特透明度。像素要么完全不透明,要么完全透明,没有Alpha通道,这就是为什么曲线形状在不匹配的背景上显示锯齿边缘。
实际影响:一段5秒480像素的片段作为GIF轻易达到5-20 MB,而MP4仅需几百KB。大多数社交平台将GIF上限设在5-15 MB,超过则剥离。如果目的地是您自己控制的现代网页,<video autoplay muted loop playsinline>中的MP4通常是更好的技术选择。凡是目的地编解码支持不可预测的地方(聊天客户端、README文件、电子邮件签名、问题追踪器评论),GIF仍占优势,因为每个平台上的每个读者都能在不需要视频播放器的情况下显示它。
实用设置参考
| 使用场景 | 帧延迟 | 宽度 | 备注 |
|---|---|---|---|
| Slack/Discord 表情包 | 100-200 ms | 400-480 px | 控制文件在约5 MB以内。 |
| README/文档演示 | 100-200 ms | 600-800 px | GitHub可内联渲染,每文件最大10 MB。 |
| 邮件签名动画 | 200-500 ms | 320-480 px | 控制在1 MB以内;第一帧应为适合品牌展示的图像。 |
| 幻灯片/作品集 | 500-2000 ms | 800-1000 px | 低帧率+较大尺寸以流畅度换取清晰度。 |
| Bug复现报告 | 100 ms | 600 px | 10fps可清晰捕捉大多数UI动效。 |
像素面积规律。文件大小大致与每帧像素数成正比,这意味着在相同宽高比下,输出宽度翻倍会使面积变为四倍。一个320像素的GIF大约是同一动画在640像素时的四分之一大小,在1280像素时的十六分之一。始终在编码前进行缩小而不是编码后。
何时使用GIF,何时选择其他格式
- 当目的地不可预测时GIF占优:聊天客户端、电子邮件、GitHub、Notion、Confluence、Jira、工单系统。用普通
<img>标签嵌入的GIF自1990年代起就能在每个浏览器上自动播放,无需视频播放器标记或编解码检查。 - APNG(动态PNG)于2023年被正式纳入PNG规范。它支持24位色彩和真正的8位Alpha通道,因此曲线形状在任何背景下都清晰。相同动画的文件通常大于GIF,但质量远更高。
- 动态WebP是谷歌的全能动画格式,支持完整Alpha和有损/无损模式。2026年跨浏览器支持率约97%;聊天客户端各异(Discord于2024年底新增原生动态WebP支持;Slack和iMessage仍不一致)。
- 动态AVIF在当前所有格式中文件最小(通常比GIF小一个数量级),但消息应用和图像编辑器的支持仍落后于静态AVIF。
- MP4/WebM视频是任何超过几秒、面向您控制的网页的动画的正确选择。
<video autoplay muted loop playsinline>是标准包装器。浏览器自动播放策略允许在无用户手势的情况下自动播放静音视频,因此视觉行为与GIF相同,但体积仅为其一小部分。
隐私与速度
许多在线GIF制作工具会将图片上传到服务器进行编码,再返回结果。从数据处理角度看,这意味着预发布UI截图、受NDA保护的设计稿、儿童照片或其他您不希望交给第三方的内容会经过他人的基础设施。本工具通过开源的gif.js库在您的浏览器中运行编码器,帧从拖放直接传入构建GIF的Web Worker,唯一离开页面的是您点击下载时的编码文件。速度取决于您的设备:一个快速的表情包GIF需要一两秒,一个30帧800像素的幻灯片在典型笔记本上可能需要10-15秒。
常见错误
- 帧尺寸差异过大。编码器使用第一帧的尺寸,其余帧要么加黑边要么被拉伸。上传前请先将所有来源裁剪或调整为相同尺寸,以获得最佳输出。
- 将帧延迟误设为fps。滑块接受的是每帧毫秒数,而非每秒帧数。100毫秒是10fps,200毫秒是5fps,500毫秒是「每半秒一帧」。如果动画看起来慢,试试降低延迟;如果看起来过快,则增加延迟。
- 对质量值的误解。数值越低质量越高(编码越慢);数值越高编码越快但越粗糙。10是不错的默认值;对于重要的主图,降至5;如果文件大小至关重要,推高至15-20。
- 输出宽度过大。宽度翻倍则文件大小变为四倍。480像素对聊天和大多数文档已足够;只有当GIF中的文字需要清晰可读时,才考虑800像素。
- 误设循环次数为1。某些平台(尤其是旧版Twitter)将不循环的GIF显示为单张静态图片。除非有特定原因只播放一次,否则保持循环 = 0。
- 混合带透明度的PNG和不带透明度的JPG。JPG帧有不透明背景;PNG帧可能透明。编码器每个调色板只选一种透明色,因此混合来源可能产生意外的光晕效果。请先将所有帧转换为相同格式。
- 尝试制作长时间动画。GIF不适合超过约10秒的内容,文件大小会变得难以控制,且大多数分享平台都有上传大小限制。请积极剪短,或改用MP4/WebP处理较长内容。
常见问题
可以添加多少帧?
以您设备内存允许的量为上限。编码器完全在浏览器中运行,因此没有服务器端限制,但一个100帧、1000像素的GIF需要相当长的编码时间,并会生成多兆字节的文件。对于大多数使用场景,400-600像素的5-30帧是最佳范围。
可以上传哪些图片格式?
任何浏览器可解码为图像的格式:JPG、PNG、GIF(取第一帧)、WebP、BMP及大多数现代格式。SVG支持取决于浏览器的canvas API。为获得最佳输出,请保持所有帧使用相同格式和相同尺寸。
GIF是否支持透明度?
GIF仅支持单比特透明度,像素要么完全不透明要么完全透明,无抗锯齿。如果上传含半透明像素的PNG帧(投影、柔和边缘),这些半透明区域会强制变为不透明或所选透明色,可能产生边缘光晕。如需在任意背景下呈现干净的Alpha效果,APNG或动态WebP是更好的格式,但不同目的地的支持情况各异。
编码后的文件会被上传至任何地方吗?
不会。gif.js编码器在您浏览器的Web Worker中运行。源图像不会发送至服务器,编码输出也不会。页面加载完成后,本工具可离线使用。
为什么我的GIF这么大?
按现代标准,GIF压缩效果很差,每帧都有自己的256色索引调色板,且没有帧间预测。最有效的调节手段是输出宽度(文件大小与像素面积成正比)和帧数。聊天友好型输出将宽度限制在480像素,将动画修剪至关键帧,并将质量值调至15-20以获得最小文件。
我可以编辑已经制作好的GIF吗?
不能直接编辑。本工具从单独的图像帧构建新GIF,不能将现有GIF分解回帧。要编辑现有GIF,您需要先将其帧提取为独立图像,修改或重新排序,然后将它们作为新序列重新上传至此。