Performance
為什麼這個 GIF 播放不流暢?
in.gif (814KB)
in.jpg (1.03MB)
我用來生成 gif 的命令 -
convert -coalesce "in.gif" "0.png" for file in 0*.png do composite -gravity center "$file" in.jpg compose_over"$file" done convert compose_over*.png output.gif
輸出.gif (58.5MB)
輸出的 GIF 不像原始的那樣是平滑的 GIF。為什麼?我怎樣才能使它成為一個平滑的 GIF 以及如何減小它的大小?
文件名最終為 0-0.png, 0-1.png, …, 0-9.png, 0-10.png, 0-11.png, …
但是隨著
*
字母擴展,您使用它們的順序最終是 0-0.png, 0-1.png, 0-10.png, 0-11.png, …, 0-19.png, 0 -2.png, 0-21.png, …因此,您正在無序地處理幀,從而導致動畫不穩定。
要解決此問題,您可以使用
0-?.png 0-??.png
代替0*.png
,或將其寫為0-{0..35}.png
(如果本範例中總共有 36 幀)。或者在第一個命令
"0%06d.png"
中用作輸出文件名,因此數字將具有前導零以使字母和數字順序相同。其他問題是原始 gif 動畫速度/延遲的損失(在這種情況下似乎是
-delay 4
),以及完全缺乏 GIF 優化(-layers Optimize
)以用於較小的文件大小。ImageMagick 給我添加的這些選項是一個平滑的 1.9MB 文件,儘管有一些圖形工件,IM 的 GIF 優化器似乎有一些問題。使用
-layers OptimizePlus
對我有用,但會產生更大的文件。您可以嘗試使用其他軟體來優化 GIF 動畫大小。為了獲得更好的視覺效果,您必須完全放棄 GIF 格式。它根本不是為了結合攝影背景。如果您打算在某些網頁上使用它,您也許可以使用 CSS 實現相同的效果,同時保持輸入文件不變。