2012-12-02 64 views
1

我正在製作一個小程序來爲一個類渲染一些二叉樹的圖像。我希望程序爲我自動生成一堆.dot和.png文件,但除非手動調用它,否則渲染.png的行不起作用。該故障碼:Ruby GraphViz DOT錯誤地渲染PNG

@file_num = 0 

data.each do |x| 
    @tree.add(x) 
    draw_frame(@tree, @filename, @file_num) 
    @file_num += 1 
end 


(0...(data.length)).each do |x| 
    `dot -Tpng #{@filename}#{x}.dot > #{x}.png` 
end 

當我走的樹,它使.dot文件(用抽籤的方法框架,我最終會做一個.gif出來的文件)。在這裏,帶反引號的電話dot...應該是png的,但它不會。如果我在命令行中運行完全相同的代碼,但它工作正常。有任何想法嗎?

回答

0

嘗試以下操作來代替:

`dot -Tpng #{@filename}#{x}.dot -o#{x}.png` 

這取代了標準輸出管道命令>與普通參數點告訴它寫入文件本身。

+0

你知道,事實證明,我創建它們後忘記關閉文件。 – kol