2016-10-23 67 views
1

我正在開發一個程序,我必須插入一些GIF來解釋程序的一部分。第一次我插入工作正常。當我將它們放入程序中時,接下來的三個使用閃爍(圓圈)。 它們在圖像查看器中不閃爍。 我做了After Effects中的動畫,渲染爲mov,在Photoshop中導入並將它們導出爲gif。我已經嘗試過抖動和沒有。 GIF的背景必須透明。在Java程序中閃爍的GIF

我對所有gif使用相同的代碼。此外,我還會在那些應該使用非防衛的地方插入工作的gif。在這個地方,好的gif也運作得很好。所以我想我的代碼沒有問題。 這是我如何將其插入程序:

​​

這是工作的gif:working gif 這是不工作的人之一:not working

任何人能搞清楚它們之間有什麼區別是什麼? 我已經用相同的設置製作了所有這些設備,現在我嘗試了很多不同的設備,現在幾個小時...

謝謝!

+0

請在您的問題中提供[MCVE]。你不能期望人們衝浪到異地資源來了解你的問題。您可以在介紹性的[如何提出一個好問題?](https://stackoverflow.com/help/how-to-ask)頁面上閱讀關於在StackOverflow上提出問題的更多信息。 –

回答

1

如果您拆分GIF,您可以看到您遇到問題的那個使用了使每個框架的非變化部分透明(以減少文件大小)的技術進行了優化。

您可以在http://ezgif.com/split(選擇「忽略優化」選項)中打開它們以自己查看。

我真的沒有在java中的gifs的經驗,但我猜java不能處理這種類型的gif優化。這並不奇怪,甚至像imagemagick和gifsicle這樣的專業編輯有時也會與這樣的GIF產生矛盾,並在調整大小或裁剪時產生奇怪的結果(閃爍,僞像)。

您可以上傳http://ezgif.com/optimize上有問題的gif並選擇「Coalesce」選項,或者如果您安裝了ImageMagick,請在本地運行帶有-coalesce選項的convert命令,它將完全重新繪製每個幀,取消此優化,並且我認爲它會解決你的問題。但它會增加gif的文件大小。