GIF 확장자로 저장해도 한 장면만 남을 수 있습니다. 원본에 여러 프레임이 있는지 확인한 뒤, 변환 과정에서 전체 프레임과 재생 시간을 함께 저장했는지 살펴보세요. 자작 WebP 한 개를 네 조건으로 바꿔 차이를 확인했습니다.
원본에 여러 장면이 있는지 먼저 확인하세요
먼저 변환 전 원본을 열어 장면이 바뀌는지 확인하세요. 움직이는 이미지는 여러 장면, 즉 프레임을 차례로 보여 줍니다. 원본과 변환 결과를 구분해 두어야 어느 과정에서 장면이 빠졌는지 비교할 수 있습니다.
이번에는 서로 다른 도형 세 장면을 직접 만들어 하나의 WebP로 저장했습니다. 아래 그림은 원본의 세 프레임을 순서대로 펼친 정지 그림입니다. 원본 WebP 파일도 내려받아 비교할 수 있습니다.

실측 자료 · 하루보탬
자작3프레임 WebP 원본: 자작 세 프레임 WebP 원본
근거: Pillow 공식 튜토리얼의 애니메이션 저장 예제
GIF로 바꿔도 한 장만 남을 수 있습니다
Pillow 12.3.0에서 이 WebP를 PNG와 GIF로 각각 기본 저장하자, 두 파일 모두 첫 프레임 하나만 남았습니다. 이때는 여러 프레임을 저장하는 save_all과 append_images 옵션을 모두 생략했습니다.
GIF 파일이 만들어졌다고 움직임까지 유지된 것은 아니었습니다. 반대로 PNG도 여러 프레임을 담는 APNG로 저장할 수 있습니다. 파일 확장자와 실제로 남은 프레임을 나눠 확인해야 하는 이유입니다.

실측 자료 · 하루보탬
기본 저장한1프레임 GIF: 기본 저장한 단일 프레임 GIF
| 파일·저장 조건 | 프레임 수 |
|---|---|
| 원본 WebP | 3 |
| PNG 기본 저장 | 1 |
| GIF 기본 저장 | 1 |
| GIF 다중 프레임 저장 | 3 |
| APNG 다중 프레임 저장 | 3 |
근거: Pillow 공식 GIF·PNG/APNG·WebP 저장 안내
프레임과 재생 시간을 함께 저장하세요
다음에는 전체 프레임 저장(save_all=True)에 프레임별 시간(duration)과 반복 설정(loop)을 함께 지정했습니다. GIF와 APNG 모두 세 프레임이 남았고, 원본의 프레임별 시간 정보도 그대로 읽혔습니다.
장면 수와 픽셀값은 별개였습니다. GIF는 세 번째 프레임의 픽셀값이 원본과 일부 달랐습니다. APNG는 세 프레임을 RGBA로 읽었을 때 원본의 픽셀과 모두 같았습니다. 이 자작 도형 파일에서 확인한 결과입니다.
변환한 파일을 다시 열어 다음 장면까지 남았는지 확인하고, 같은 재생 환경에서 원본과 속도를 비교해 보세요. 아래 GIF는 무한 반복 파일이 아니므로 이미 멈춰 있다면 그림을 새로 열어 확인하세요. 이 실험에서 다른 변환 사이트나 앱의 동작까지 시험한 것은 아닙니다.

실측 자료 · 하루보탬
근거: Pillow 공식 튜토리얼의 애니메이션 저장 예제 · Pillow 공식 GIF·PNG/APNG·WebP 저장 안내
적용 조건과 확인 범위
- Pillow12.3.0에서 자작 불투명 도형 한 파일을 비교했습니다. 다른 앱·변환 사이트의 결과를 시험한 것은 아닙니다.
- PNG 확장자에도 APNG 애니메이션이 가능하므로 파일 형식만으로 움직임 유지를 단정하지 않습니다.
확인일: 2026-09-11T08:07:14.650358+00:00
