애니메이션 GIF 타일


10

imagemagic / montage를 사용하여 애니메이션 애니메이션 GIF (비 애니메이션 애니메이션 GIF와 혼합)를 바둑판 식으로 배열하는 방법이 있습니까?

즉, 시간이 아닌 공간에서 애니메이션을 연결하고 싶습니다. 애니메이션의 프레임 수와 지속 시간이 두 애니메이션을 깔끔하게 결합하는 것이 불가능할 수 있음을 알고 있습니다. 그러나 모든 프레임이 어떤 방식으로 존재하는 한 근사와 추측, 프레임 확장 / 반복 프로그램은 괜찮습니다.

난 노력 했어

convert *.gif -append output.gif

montage *.gif -mode concatenate -tile x1 output.gif

그러나 둘 다 애니메이션 gif를 여러 개의 개별 애니메이션되지 않은 gif로 취급합니다.

애니메이션 프레임을 프레임별로 분리하고, 가장 긴 루프와 일치시키기 위해 필요한만큼 짧은 루프를 반복 / 확장하고, 가장 긴 애니메이션 프레임에있는 많은 프레임에 대해 애니메이션되지 않은 gif를 반복하고, 해당 프레임을 연결하는 스크립트를 작성할 수 있다고 가정합니다. 을 사용하여 하나의 큰 프레임으로 -append만든 다음 큰 프레임을 하나의 큰 gif로 결합합니다. 그러나 이것이 간단한 명령으로 이미 가능하다면 바퀴를 재발 명하고 싶지 않습니다.

물론 imagemagick 외에도 다른 무료 옵션을 사용할 수 있습니다.



2
의도하지 않았을 수도 있습니다. 진지한 의견으로. 예, GIF를 바둑판 식으로 배열하고 싶습니다. 그러나 영구적으로 HTML이 아닙니다. 링크 주셔서 감사합니다. 나중에 사용하기 위해 특정 GIF를 저장합니다.
tsbertalan

1
@tsbertalan 당신은 결국 이것을 알아 냈습니까?
Seb Barre

답변:


1

시간이 지남에 따라 여러 애니메이션을 일치시키려는 것처럼 들리지만 각 프레임과 해당 지연을 읽도록 프로그램을 가져온 다음 지연이 충족 될 때까지 일정한주기 주파수로 해당 프레임을 출력합니다. 예 : 1 프레임, 1 초 지연 및 '주파수'는 100ms이므로 100ms에서 10 프레임을 작성 하시겠습니까? 그런 다음 선형 몽타주로 변환 되었습니까?

그런 종류의 처리를 수행하려면 프로그램이나 무거운 스크립트가 필요하며 '빈도'(100ms)를 정의해야합니다.

그러나 이것은 잘 작동합니다 : (gifsicle은 패키지이고 몽타주는 imagemagick 패키지의 일부입니다)

gifsicle --unoptimize cool_animation.gif | \
  montage -tile x1 - linear_frames.png

(가독성을 위해 줄 바꿈)

첫 번째 줄은 들어오는 gif를 개별 프레임으로 분리하지만 (stdout) 레이어를 채 웁니다. 처음에는 --unoptimize 옵션이 없으면 첫 번째 프레임이 표시되지만 이후 프레임에는 매번 변경된 내용 만 포함됩니다. 이상한 몽타주를 위해 제작되었습니다!

두 번째 줄은 선형 출력을 만들어서 각 프레임 이미지 (stdin에서)를 가져와 지정한 순서대로 정렬합니다. 수평선을 따라 정렬하려면 'x1'.

단일 파일 이름 (cool_animation.gif)을 여러 개 또는 와일드 카드 * .gif로 바꿀 수 있습니다.

나는 이것이 당신이 찾고있는 것인지 확실하지 않습니다.


gifsicle --colors=255 DATA.gif | gifsicle --unoptimize | montage -tile x1 - linear_frames.pngƬᴇcʜιᴇ007의 테스트 이미지를 수정하면 imgur.com/a/Likr9 ; 내가 찾고있는 것이 아닙니다. 원래 목적을 기억할 수 없습니다. 아마도 스크립트를 작성하여 명시 적으로 나눕니다.
tsbertalan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.