2016-12-27 37 views
2

我一直在試圖從生成並保存在R中的圖產生GIF。對於使用當前系統的我們已經使用ImageMagick帶來了極大的不便。 R還有其他可以創建GIF的方式或包嗎?我研究了堆棧溢出,並且只發現了涉及ImageMagick的響應。有沒有辦法在R中使用ImageMagick或其他第三方軟件製作GIF?

+1

如果有幫助,PNG圖像文件是一個類似的形式,並與所述'png'功能基礎R可用。 – lmo

+0

我已經使用png作爲將變成gif的情節的保存格式。你知道有什麼方法可以輕鬆地將它們轉換成gif嗎? – PhysicsFreak

+0

這是一個不錯的[超級用戶發佈](http://superuser.com/questions/71028/batch-converting-png-to-jpg-in-linux)將imagengg轉換爲jpeg的png。我想在任何代碼行中用gif替換jpeg都會起到訣竅的作用。 – lmo

回答

1

沒有R的內置方式可以製作gif(據我所知),它不依賴外部庫將保存爲單幀的圖像轉換爲gif。

對於該轉換ImageMagick可能是最常見的,但也有其他工具可以使用。 The animation package系統要求建議您可以選擇使用GraphicsMagick甚至LyX,或者您可以使用任意數量的online tools手動(或以編程方式編輯,如果您可以推出自己的API)。

0

你沒有提到你的操作系統,也沒有提到你的意思是簡單的單幀GIF或動畫GIF。如果你只是想要簡單的GIF,你可以使用NetPBM包裝,它的重量更輕,並且比ImageMagick更容易安裝。

所以,假設你有一個PNG文件名爲input.png,你想把它轉換成GIF叫result.gif,你可以這樣做:

pngtopam < input.png | pamtogif > result.gif 

如果你想要做的,從內部R,你需要使用system()命令:

system("pngtopam < input.png | pamtogif > result.gif") 

正如你很可能會看到,的NetPBM將所有輸入轉換爲它自己的標準最低公分母PAM格式,並從那裏轉換到所有已知的輸出格式,因此在它支持的N個格式之間只需要2N個轉換,而不是N^2個轉換 - 甜!

所以,對於64種格式:

64^2=4,096 (conversions to write) 

2x64=128  (conversions to write) 
相關問題