fn is_animated_image(data: &[u8], format: ImageFormat) -> boolExpand description
检测图片是否为动画(多帧)格式。
动图的每一帧都承载信息(运动、表情、进度),而 image::DynamicImage 与
zenwebp 的 read_image(api.rs 中非动画路径)只能解码单帧——经过
process_image 解码→缩放→重编码后会永久丢失动画,只剩第一帧。
因此在处理流水线入口拦截:动图原样返回字节(动画保留),由两层缓存 按参数化 key 缓存。检测只读容器 header,不做像素解码、不分配:
- WebP:扫描 RIFF chunk,出现
ANMF(动画帧)即动图。 - GIF:扫描
NETSCAPE2.0应用扩展(动图 GIF 的标准循环标记)。
JPEG/PNG 不可能是动图,直接返回 false。