2013-06-11 18 views
0

我工作的一個腳本,需要一個.xwd圖像,運行wxdtopnm它然後通過管道,要ppmtogif。基本上是:ppmtogiff:許多色彩解決辦法

exec wxdtopnm < file.xwd | ppmtogif > file.gif 

不過,有時我得到一個錯誤

ppmtogiff: to many colors - try doing a 'ppmquant 256' 

嗯,我試過ppmquant和長話短說,該選項暫無數據。我偶然發現pamdepth,想嘗試那。但是,我沒有找到關於如何正確使用的實際示例,我也不完全是tcl的專家。

我試圖

exec wxdtopnm < file.xwd | pamdepth 6 | ppmtogif > file.gif 

但沒有奏效。我收到消息

Error: Invalid Command name "6" 

有人可以展示如何正確使用pamdepth的例子嗎?

+0

爲什麼GIF?嘗試'pnmtopng'。 Imagemagick也可以處理wxd。嘗試'轉換file.xwd file.gif' –

+0

@FredrikPihl它不是我的選擇,我只是修復一個錯誤在別人的代碼 – Daniel

+0

你可以說_how_的東西不起作用? –

回答

2

不管是怎麼回事,它不能是你寫什麼:

exec wxdtopnm < file.xwd | pamdepth 6 | ppmtogif > file.gif 

當我嘗試做當量(我們的目的,我沒有任何周圍XWD圖像):

exec pngtopnm sample.png | pamdepth 6 | ppmtogif >foo.gif 

我沒有得到這個錯誤你彙報。相反,我得到:

 
pamtogif: computing colormap... 
pamtogif: 121 colors found 

這些是造成這一事實的相互作用是pamdepth是它的標準錯誤通道(某些程序公正是)和事實健談TCL的exec打開標準的錯誤消息爲瑣碎的錯誤錯誤消息默認情況下。這通常是正確的,但我們不希望在這裏。但有一個簡單的解決方法:

exec pngtopnm sample.png | pamdepth 6 2>/dev/null | ppmtogif >foo.gif 

這從pamdepth只到系統比特鬥重定向標準錯誤,使管道按預期運行的其餘部分。

我不能肯定地說這是否會爲你工作(我真的不知道該6錯誤是來自!),但它確實對我來說,當我嘗試。

+0

如果我正在做真正的轉換,我會考慮直接使用'pnmcolormap'和'pnmremap',如['pnmquant'手冊頁](http:// netpbm。 sourceforge.net/doc/pnmquant.html)... –