簡體   English   中英

使用GraphicsMagick調整動畫GIF的大小

[英]Resizing animated GIF using GraphicsMagick

我有一個帶透明框架的動畫gif圖像。 我需要調整它的大小。

在調整大小之前,我使用Magick::coalesceImages函數,在調整圖像大小后,我使用Magick::writeImages函數將所有gif幀收集回一個單獨的圖像。

問題是輸出調整大小的圖像文件大小比原始大小更大,因為原始動畫gif具有透明幀,而新調整大小的gif沒有任何透明幀。

我在www.imagemagick.org上看過有關幀優化的內容,我可以在www.graphicsmagick.org上看到gifDisposeMethod函數。

我的問題是,如何使調整大小的動畫gif圖像使用透明度幀並避免增加圖像KBytes大小?

好吧,我找到了要走的路:

調整動畫gif大小時,使用Magick::coalesceImages()並不是最好的方法...

相反,我根據百分比大小而不是絕對大小來重新調整,同時跳過Magick::coalesceImages()調用。

例如,假設我的原始動畫gif是300x300,我想將其調整為150x150,我將執行以下操作:

  • 閱讀Magick::Blob的圖像
  • 計算百分比數字(在我的演示案例中為50%x50%)
  • 根據百分比計算調整圖像的每個幀的大小。

這樣我們就不會增加每個幀的大小,因為我們沒有使用Magick::coalesceImages()函數,而是根據原始大小調整每個幀的大小,所以我們對幀的透明度沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM