用ruby tkextlib / tkimg显示png / jpg图像 - 找不到图像

时间:2016-10-31 12:05:03

标签: ruby image tk

我无法使用ruby和tkextlib / tkimg显示png / jpg图像

require 'tkextlib/tkimg'
root = TkRoot.new
root.title = "Window"

image = TkPhotoImage.new(:file => "/path/to/image.png")

label = TkLabel.new(root)
label.image = image
label.place('height' => image.height,
        'width' => image.width,
        'x' => 10, 'y' => 10)
Tk.mainloop

错误:

/Users/dragon/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/tk/package.rb:86:in `rescue in require': TkPackage dlopen(/System/Library/Tcl/8.5/Img1.4/libtkimgwindow1.4.dylib, 10): image not found (RuntimeError)
from /Users/dragon/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/tk/package.rb:83:in `require'
from /Users/dragon/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/tkextlib/tkimg.rb:16:in `<top (required)>'
from /Users/dragon/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/dragon/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from main.rb:1:in `<main>'

代码适用于任何* .gif类型的图像,但是使用jpg / png类型的图像,它会给我找不到图像的错误,但我100%确定图像存在于指定路径。

另外,tkextlib / tkimg应该适用于那些类型的图像。

请帮忙。谢谢。

ruby​​ 2.2.4,os x:10.11.6

对于特权也应该没有问题,因为图像在python中以类似的代码显示。

我尝试谷歌了一下,但显示的代码应该有效。

另外,还有其他方法可以在ruby中显示jpg图像吗?

1 个答案:

答案 0 :(得分:1)

您的代码在我的计算机上运行正常,对于jpg或png,具有绝对路径或相对路径。你的路径名中是否有任何“怪异”的字符,就像空格一样? 当然,您可以尝试:

image_path = "/path/to/image.png"
puts File.exists?(image_path)
image = TkPhotoImage.new(:file => image_path)

Mac OS X 10.9.5上的ruby 2.0.0p481