Skip to main content

is_animated_image

Function is_animated_image 

Source
fn is_animated_image(data: &[u8], format: ImageFormat) -> bool
Expand description

检测图片是否为动画(多帧)格式。

动图的每一帧都承载信息(运动、表情、进度),而 image::DynamicImagezenwebpread_imageapi.rs 中非动画路径)只能解码单帧——经过 process_image 解码→缩放→重编码后会永久丢失动画,只剩第一帧。

因此在处理流水线入口拦截:动图原样返回字节(动画保留),由两层缓存 按参数化 key 缓存。检测只读容器 header,不做像素解码、不分配:

  • WebP:扫描 RIFF chunk,出现 ANMF(动画帧)即动图。
  • GIF:扫描 NETSCAPE2.0 应用扩展(动图 GIF 的标准循环标记)。

JPEG/PNG 不可能是动图,直接返回 false。