PNG 图片合成 GIF 后透明背景变黑,原因不在 PNG,而在 GIF 只认一种透明。GIF 的透明是二值的,一个像素要么全透明、要么实色,没有半透明这档。PNG 里的羽化边缘、投影、渐变,转到 GIF 时会被强行判成实色,压到深色背景上就是一圈黑边。电商抠图、图标动效、LOGO 演示这几类素材最常撞上。 宽度和高度决定画布与单帧数据量。画布只要比素材大,多出来的部分就会露出一层底色,看上去像多了一圈边。 速度决定每帧停多久,与透明无关。压缩选项里的删帧、擦除重复像素处理体积,全局调色板会把各帧颜色统一到一张表里,半透明过渡最先在这里断掉。图片质量影响颜色精度,压得狠,边缘更毛。 只贴在浅色页面上,最稳的做法是干脆不要透明,在源图里直接铺白底,边缘反而干净。要贴在深色背景或图片上,建议先在源图铺同色底,再看合成效果。 确实需要边缘平滑过渡的,比如发光、柔和投影,GIF 做不到,得考虑 WebP 动图或视频。判断标准可以先看边缘:边缘是硬边就能用 GIF,边缘是渐变就得换格式。 1. 打开GIF制作工具,点「Gif合成」,上传多张素材,页面支持 jpg、png、gif 三种格式。 2. 宽度按素材实际宽度填,高度跟随比例,避免画布大于图片;速度按内容需要设。 3. 生成后把动图放到目标背景里看边缘。发黑就回源图给半透明区铺一层底色,重新合成;发白多半是画布留了空。 要保留每帧不同的透明区域、要半透明叠加,GIF 格式本身不支持,换格式比反复调参数有效。只要一张静态透明图,PNG 就够用,不必做成动图。成品体积偏大且颜色简单,去GIF压缩缩尺寸比删帧更划算,透明边缘也不会因此变脏。 预览里透明是白的,发出去变黑,是哪一步错了? 两个环境的底色不同。透明区在任何预览器里都按自己的默认底色显示,接收端是深色模式就露黑。想控制观感,就在源图里铺好底色。 边缘一圈白毛怎么消? 白毛来自半透明像素被判成实色。回到原图,把边缘向外扩一两像素的实色,或直接铺同色底,再合成一次。 能不能只让某一帧透明? GIF 的透明按帧记录,理论上可行,但合成页给的是整组统一处理,逐帧透明得换到能编辑帧的软件里做。 顺序还是先看这块透明用在哪、边缘是硬是软:能铺底就铺底,要柔和过渡就换格式。透明这一项想清楚,宽度和速度才有意义。
宽度、高度、速度、压缩选项各管什么
先确认这块透明要用在哪
具体操作

这些需求,合成页解决不了
常见问题