7

파이썬과 PIL 또는 PythonMagick을 사용하여 GIF 애니메이션 이미지의 크기를 변경하고 싶습니다. 솔루션을 찾을 수 없습니다. PIL 및 축소판 방법은 jpg 및 png에서는 작동하지만 gif에서는 작동하지 않습니다. ImageMagick은 mogrify/convert -resize '1280x1024'명령을 가지고 있지만 문서를 찾을 수없고 pythonmagick으로 어떻게 할 지 모르겠습니다.크기 조정 GIF 애니메이션, pil/imagemagick, python

누구나 해결책을 알고 계십니까? 내가 OS/하위 프로세스를 사용하여 변환 최악의 경우

, -S

감사합니다.

+1

나는 그 동안 당신이 그랬던 것처럼 recomment - subprocess를 사용하고 변환. Pythonmagic은 적절한 유지 관리 부족으로 어려움을 겪습니다. PIL은 애니메이션 GIF 만 읽는 것을 지원합니다. 질문을 열어 두십시오. 아마도 psthonmagic으로 크기를 변경하기 위해 psnipped를 사용하는 누군가가 나타납니다. – jsbueno

답변

12

blog page에 연결된 간단한 PIL 기반 모듈 인을 사용할 수 있으며 here을 사용할 수 있습니다. 이 코드를 처리하는 데 사용되는 코드는 다음과 같습니다 (rose.gif). 나는 에 images2gif.readGif을 'numpy로 읽기'속성을 설정하여 PIL thumbnail 기능을 사용할 수 있도록 PIL 이미지의 목록을 가져 왔습니다.

기존 이메일 : rose 가공 : small rose

import Image 
import images2gif 

frames = images2gif.readGif("rose.gif",False) 
for frame in frames: 
    frame.thumbnail((100,100), Image.ANTIALIAS) 

images2gif.writeGif('rose99.gif', frames) 

내가 투명성을 유지하는 방법을 잘 모르겠어요, 내 시도는 이렇게하는 (지금까지) 실패했습니다.

+5

애니메이션 속도를 저장하는 방법은 무엇입니까? –

+2

http://www.velocityreviews.com/forums/t354000-pil-and-transparent-gifs.html에 따르면 투명도 = im.info [ "transparency"]로 투명도를 직접 처리해야합니다. ...; out.save ("out.gif", transparency = transparency) – Collin

3

일부 놀라운 사람은 투명성을 차지 images2gif.py의 업데이트 된 버전을 만든 :

https://bitbucket.org/bench/images2gif.py/overview

여전히 몇 가지 유물이있다, 그러나 원래보다 훨씬 낫다!

+3

첫 번째 시도에서 실패했습니다 - 팔레트 목록은 [None, None .. None]처럼 보이고 새 파일에 쓰기를 시도합니다. 안타깝게도, 코드 조각이 테스트와 함께 제공되지 않을 때 일어날 것으로 예상됩니다. 최초의 것은 적어도 의미있는 메시지를줍니다 : RuntimeError : 팔레트를 얻을 수 없습니다. 어쩌면 당신은 대신 이미지를 시도해야합니다 .' –