패키지 애니메이트는 훌륭하지만 더 나은 애니메이션 압축이 가능할까요?

패키지 애니메이트는 훌륭하지만 더 나은 애니메이션 압축이 가능할까요?

방금 애니메이션이 포함된 PDF 파일을 얻기 위해 패키지를 사용해 보았는데 animate훌륭하게 작동합니다!

그러나 생성된 파일의 크기는 내가 다루고 있는 애니메이션의 크기보다 10배 더 크고 대부분의 경우 훨씬 더 크다는 것을 알았습니다.

그 이유는 모든 프레임에 대해 전체 프레임이 아닌 연속 프레임 간의 차이를 사용하지 않기 때문이라고 생각합니다. 예를 들어 이것은 gifsicle이 사용하는 것입니다.http://www.lcdf.org/gifsicle/ (출처 사용 가능) "각 프레임의 변경된 부분만 저장하므로 GIF를 근본적으로 줄일 수 있습니다."

이것이 패키지에서 최적화될 가능성이 있습니까 animate?

답변1

timeline차등 비트맵과 패키지 기능을 사용하여 PDF 애니메이션의 크기를 최적화할 수 있습니다 animate.

그러나 표시할 새 애니메이션 프레임이 있을 때마다 다시 표시해야 하는 차등 프레임 수가 1씩 증가한다는 점에 유의하세요. 시간이 지남에 따라 실행 중인 애니메이션의 속도가 느려질 수 있습니다. Adobe Reader는 기본적으로 그래픽 렌더링 속도에 최적화되어 있지 않습니다. 따라서 긴 비트맵 시퀀스의 경우 비디오 파일(MP4/H.264)을 생성하고 이를 패키지에 포함하는 것이 더 나을 수 있습니다 media9.

그래도 차등 비트맵 시퀀스에 애니메이션을 적용하려면 다음을 수행하십시오.

(1) 다음을 사용하여 원본 애니메이션 gif의 크기 최적화 버전을 만듭니다 gifsicle.

gifsicle -O3 animated.gif > optimized.gif

테스트 목적으로 점근선 웹 사이트에서 다음 애니메이션 gif를 사용해 볼 수 있습니다.http://asymptote.sourceforge.net/gallery/animations/wheel.gif

(2) 아래 나열된 스크립트를 사용하여 이미지 차이의 PNG 시퀀스( difference-0.png, difference-1.png, ...) 를 생성합니다 ungif.sh. 스크립트는 \animategraphics텍스트 파일로 리디렉션되는 표준 출력에 사용할 타임라인을 작성합니다 timeline.txt.

ungif.sh optimized.gif difference.png > timeline.txt

(3) 애니메이션 시퀀스가 ​​포함된 PDF는 다음 LaTeX 소스 파일에서 생성할 수 있습니다(최대 프레임 번호 및 프레임 속도를 조정해야 할 수도 있음).

\documentclass{article}
\usepackage{animate}

\begin{document}

\noindent\animategraphics[
  controls,
  width=0.5\linewidth,
  timeline=timeline.txt
]{10}{difference-}{0}{99} %adjust the maximum frame number

\end{document}

(4) Adobe Reader에서 애니메이션을 보기 전에 Reader 설정(편집->환경 설정->페이지 표시)에서 '부드러운 이미지'가 선택 해제되어 있는지 확인하십시오. 그렇지 않으면 추악한 인공물이 생깁니다.

Bash 스크립트 내용 ungif.sh(ImageMagick 필요):

#!/bin/bash

wxh=$(identify -format '%Wx%H' $1[0])
fs=$(identify -format %n $1)

for (( i=0; i<$fs; i++ ))
do
  convert -page $wxh ${1}[$i] -matte -background none -layers coalesce -quality 90 ${2/./-$i.}
  echo "::${i}x0"
done

관련 정보