Python 으로 GIF 동 도 를 여러 장의 정적 그림 으로 분해 합 니 다.
때때로 당신 은 동적 인 그림 을 보 았 는데,그 중의 한 화면 은 매우 좋다 고 생각 하고,그 중에서 추출 하고 싶 습 니 다.예 를 들 어 여러 예 쁜 언니 들 로 구 성 된 GIF 짤:
이루어지다
GIF 동적 이미 지 는 여러 장의 정적 이미 지 를 조합 하여 일정한 순서 와 시간 에 따라 재생 된다.이 를 바탕 으로 GIF 그림 을 거꾸로 정적 그림 으로 분해 할 수 있 습 니까?즉 GIF 이미지 가 프레임 이 있 는 만큼 정적 이미지 가 있 는 것 이다.답 은 확실 해!모두 이미 만들어 진 도구 가 있 고 무료 도 있 으 며 비용 을 지불 하 는 것 도 있 고 온라인 판 도 있다.GIF 동적 이미 지 를 전문 적 으로 처리 하 는 강력 한 도구 도 있다.
하지만 IT 인 으로서 스스로 실현 해 보지 않 겠 는가?프로 그래 밍 을 처음 배우 면 연습 할 수 있다.고 수 는 DIY 확장 가능,제한 없 음,"구속 없 음"!
그렇다면 어떻게 코드 로 이 수 요 를 실현 합 니까?어떤 사람 은"파 이 썬 은 아 이 를 낳 지 못 하 는 것 외 에는 무엇이든 할 수 있다"고 말 했다.이 사소한 일 은 파 이 썬 이 실현 하 는 것 도 당연히 말 할 필요 가 없다!이것 은 이미지 처리 문제 입 니 다.Python Imaging Library 는 PIL 라 이브 러 리 가 아 닙 니까?PIL 은 이미 Python 플랫폼 의 사실상 이미지 처리 표준 라 이브 러 리 입 니 다.PIL 기능 은 매우 강하 지만 API 는 매우 간단 하고 사용 하기 쉽다.하지만
PIL 은 Python 2.7 까지 만 지원 되 고 오랫동안 수 리 를 하지 않 았 기 때문에 한 무리의 자원 봉사자 들 이 PIL 을 바탕 으로 호 환 되 는 버 전 을 만 들 었 습 니 다.이름 은 Pillow 이 고 최신 Python 3.x 를 지원 하 며 새로운 기능 도 많이 추가 되 었 기 때문에 우 리 는 Pillow 를 직접 설치 하여 사용 할 수 있 습 니 다.
Pillow 에서 하나의 모듈 은 동적 이미지 추출 기능 을 전문 적 으로 실현 하 는 것 이다.이것 이 바로 ImageSequence 모듈 이다.이 모듈 은 포장 기 류 를 포함 하여 사용자 가 이미지 시퀀스 의 프레임 을 교체 하 는 데 도움 을 줄 수 있다.애니메이션,GIF 등 을 옮 겨 다 닐 수 있 습 니 다.그림 대상 을 매개 변수 로 받 아들 입 니 다.이것 은 교체 기 대상 을 실현 하고 사용 자 는 이 대상 을 사용 하여 이미지 시퀀스 에서 교체 할 수 있다.문법:
classPIL.ImageSequence.Iterator(im)
이상 의 이 해 를 통 해 우 리 는 소 칼 을 시험 해 볼 수 있 습 니 다.만약 에 Pillow 를 설치 하지 않 았 다 면pip
을 통 해 설치 할 수 있 습 니 다.pip install pillow
시간 관계 로 나 는 이미 설치 했다.또한 Pillow 가 설치 되 어 있 는 지pip list
명령 을 통 해 설 치 된 Python 패 키 지 를 열거 할 수 있 습 니 다.이어서 잔말 말고 데모 코드 로 바로 올 라 가세 요.
from PIL import Image, ImageSequence
with Image.open("girls-min.gif") as im:
index = 1
for frame in ImageSequence.Iterator(im):
frame.save(f"girl{index}.png")
index += 1
최종 효 과 는 다음 그림 에서 보 듯 이 최 적 화 를 조정 하고 보완 하면 된다.레 퍼 런 스
pillow 라 이브 러 리 의 기초 사용 강좌
How-To Geek : What Is a GIF, and How Do You Use Them?
Pillow : ImageSequence Module
파 이 썬 으로 GIF 동 도 를 여러 장의 정적 그림 으로 분해 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 분해 그림 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.