人物变胖,先检查第一张图的宽高
多张图片合成 GIF 后出现拉伸,先把每张源图的像素宽高列出来,尤其是第一张。当前 ToolboxHub 会取第一帧的宽高作为输出画布,再把后续图片直接绘制到这个尺寸;它没有自动留白以保持比例的开关。
例如商品展示图第一张是横图,第二张是方图,单独看都正常,合起来却只有第二张的圆形标志变扁。这时调整每帧延迟只会改变停留时间,不会改变圆形的比例。换一张图放在最前面,也只是换了所有帧共同使用的画布,并没有修好其他素材。
上述行为已核对当前组件源码中的画布尺寸与绘图调用。下面的像素结果是据此推导的演示预期;本次没有运行浏览器编码、生成真实 GIF,也没有测量播放器的实际播放时长。
用两帧样本找出哪一方向被压缩
先用无关紧要的两张测试图复现,能把尺寸问题与正式素材里的字体、颜色问题分开。不要覆盖原图,准备一个单独的练习目录。
- 输入 A:600×300 像素的白底横图,标上 A,中央画一个直径 100 像素的圆。
- 输入 B:300×300 像素的白底方图,标上 B,中央同样画直径 100 像素的圆。
- 先加入 A,再加入 B,确认列表显示两帧,把每帧延迟设为 1000 毫秒,然后生成。
预期输出画布为 600×300。A 的圆仍是 100×100;B 被横向放大两倍、纵向不变,所以其圆的几何外接框预期约为 200×100,看起来像椭圆。边缘抗锯齿和编码会影响精确像素边界,这里的重点是两倍宽度,不是逐像素完全相同。
再做对照:把 B 先放到一个新的 600×300 白色画布中央,B 本身保持 300×300,两侧各留 150 像素。用 A 与这个 B 副本重新生成,两个圆的宽高比都应接近 1。这个对照保留了原来的产品形状,只增加左右空白,不能用把 B 强制拉到 600×300 来代替。
以上加画布操作需要图片编辑器完成,GIF 页面本身不提供这项功能。
先决定允许裁掉内容,还是必须完整保留
需要铺满画面且边缘可以舍弃,就先裁成同一比例;商品尺寸、图表刻度或完整截图不能丢,就保持比例并加同尺寸画布。不要把“所有文件像素相同”误当成“内容没有变形”。
允许裁剪时,可用图片裁剪工具处理副本,裁前确认主体与文字都留在范围内,再把各帧统一为目标尺寸。同样的长宽比也应统一像素大小,否则生成器仍会缩放后续帧,小图放大会损失细节。
已有相同比例的素材,可用图片缩放工具保持比例缩放。对于前面的方图,等比缩放只能得到方图;需要完整放进横向画面时,仍得另行补画布。工具不会判断价格标签、二维码或人脸是否允许被裁掉。
处理好副本后再进入 GIF 动画生成器。按需要的顺序加入图片并核对编号,当前列表提供移除按钮,没有拖动排序;顺序错误时可移除并按目标顺序重新加入。至少两帧读取完成后才可生成。
验收下载文件,不拿小缩略图当证据
下载的 animation.gif 才是交付对象,列表缩略图只适合认图和认顺序。缩略图采用固定高度并裁切显示,可能让图片看似已被裁过,不能据此判断 GIF 的完整边缘。
复核时重新打开下载文件,使用能查看图片尺寸的查看器确认画布为 600×300,再观察 A、B 两帧是否都保留完整标记。需要测量时,在能逐帧查看的编辑器里比较圆的水平与垂直直径,或导出帧后检查;GIF 生成页面没有逐帧测量功能。
可以记录“输入 A/B 的尺寸、谁在第一位、加画布后的尺寸、下载文件尺寸、圆是否变形”这五项,让另一位同事用同样样本复现。不要把等待编码的时间写成每帧时长,也别只检查浏览器里上一次的预览。
这些现象要用不同办法处理
生成失败、比例错误与透明背景改变不是同一个问题。先按症状定位,再决定是否重新做素材。
- 只有第二帧变宽:比较它与第一帧的长宽比;用等比缩放加画布或经批准的裁剪修复副本。
- 所有帧都变糊:检查第一张是否太小,或素材是否早已模糊。换成适当分辨率的原始素材,放大既有小图不能补回细节。
- 生成按钮不可用:核对是否不足两帧,或某张仍未读取完成;移除读取失败的文件,再加入可正常打开的图片。
- 修改延迟后预览消失:当前页面会清除旧输出,避免旧结果被当成新设置。确认设置后重新生成并重新下载。
- 透明区域变白:组件在绘制每帧前先铺白色底。如果交付必须保留透明背景,应改用支持该需求的动画编辑流程。
工具使用统一帧延迟,不支持逐帧设置不同停留时间,也不会智能裁剪、修复原图或覆盖本地文件。处理大图和很多帧会增加浏览器内存负担,先用两帧小样通过比例检查,再扩展到整组素材。
常见问题
把延迟调慢,可以修复人物变形吗?
不能。延迟决定每帧停留时间;变形要检查宽高比例以及如何绘制到共同画布。
第一张换成方图,其他图片就会正常吗?
不一定。横图随后会被绘制到方形画布,可能变成纵向拉长。所有帧都应在生成前准备好同尺寸、未变形的副本。
页面列表看起来裁掉边缘,下载也一定会裁掉吗?
不一定。列表缩略图有自己的显示裁切,当前生成逻辑则把整张图片缩放到画布。必须查看实际下载的 GIF 才能验收。
能直接在 GIF 页面补白边或拖动帧吗?
不能。补画布应在图片编辑器里完成;当前帧列表可移除但不能拖动重排,顺序有误时按目标顺序重新加入。