2016-10-31 10 views
0

を見つけていない、私はトラブルルビーとPNG/JPG画像を表示し、tkextlib/tkimgはルビー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はその種類の画像で動作するはずです。

助けてください。ありがとうございました。

ルビー2.2.4、OS Xの:10.11.6

もPythonで同様のコードの画像ディスプレイとしてpriviledgesに問題があってはなりません。

私は少しGoogleにしようとしましたが、表示されたコードがうまくいくはずです。

また、ルビに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

はい、そうです。また、ルビーを更新することで運がない。 –