2012-12-02 46 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