2016-10-31 38 views
0

我有紅寶石和tkextlib/tkimg顯示PNG /紅寶石tkextlib/tkimg 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 

錯誤顯示PNG/JPG圖片的麻煩:

/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應該可以處理那些類型的圖像。

請大家幫忙。謝謝。

紅寶石2.2.4,OS X:10.11.6

也應該有與權限的如在蟒類似的代碼的圖像顯示沒有問題。

我試着谷歌了一下,但顯示的代碼應該工作。

另外,有沒有其他方法可以在ruby中顯示jpg圖像?

+0

它看起來像tkimg包沒有安裝。該錯誤不是來自加載PNG,而是來自試圖加載tkimg軟件包。 –

+0

但它似乎安裝,因爲它運行時,我嘗試的GIF圖像。嗯,我該如何安裝它? –

+0

gif支持內置於Tk。 Tk 8.6包含對png的內置支持。 tkimg軟件包支持許多不同的圖像類型。您似乎有一箇舊版本的Tk,並且未安裝tkimg。我不知道紅寶石或寶石,所以我不知道如何安裝它。 –

回答

0

您的代碼可以在我的電腦上正常工作,無論是jpg還是png,絕對或相對路徑。你的路徑名中是否有任何「怪異」字符,如空白字符? 可以肯定的,你可以嘗試:

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

紅寶石2.0.0p481在Mac OS X 10.9.5

+0

是的,路徑和圖像存在。我可能會嘗試更新紅寶石或什麼。 –

+0

File.exists?(image_path)是否返回true? –

+0

是的,它的確如此。另外,更新紅寶石也沒有運氣。 –