2016-10-31 3 views
0

gefunden Ich habe Probleme bei der Darstellung png/JPG-Bildes mit Rubin und tkextlib/tkimgAnzeige png/JPG-Bild mit Rubin tkextlib/tkimg - Bild nicht

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 

der Fehler:

/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>' 

Der Code funktioniert mit jedem * .gif-Bild, aber mit JPG/PNG-Bildtyp gibt es mir den Bild nicht gefunden Fehler, aber ich bin 100% sicher, dass das Bild am angegebenen Pfad existiert.

auch, tkextlib/tkimg sollte mit diesen Arten von Bildern arbeiten.

bitte helfen. Vielen Dank.

Rubin 2.2.4, os x: 10.11.6

auch in ähnlichem Code kein Problem mit priviledges wie das Bild zeigt sein in Python sollte.

Ich habe versucht, ein wenig zu googlen, aber der Code angezeigt sollte funktionieren.

auch, gibt es eine andere Möglichkeit, jpg Bild in Ruby anzuzeigen?

+0

Es sieht aus wie das tkimg Paket ist nicht installiert. Der Fehler liegt nicht beim Laden des PNG, sondern beim Versuch, das tkimg-Paket zu laden. –

+0

aber es scheint, dass es installiert ist, wie es läuft, wenn ich GIF-Bild versuche. hmm wie kann ich es installieren? –

+0

GIF-Unterstützung ist in Tk eingebaut. Tk 8.6 enthält integrierte Unterstützung für Png. Das tkimg-Paket unterstützt viele verschiedene Bildtypen. Sie scheinen eine etwas ältere Version von Tk zu haben und tkimg ist nicht installiert. Ich kenne Ruby oder Edelsteine ​​nicht, also weiß ich nicht, wie ich es installiere. –

Antwort

0

Ihr Code funktioniert gut auf meinem Computer, entweder für jpg oder PNG, mit absoluten oder relativen Pfad. Hast du irgendwelche seltsamen Zeichen in deinem Pfadnamen, wie ein Leerzeichen? Um sicher zu sein, könnten Sie versuchen:

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

Rubin 2.0.0p481 auf Mac OS X 10.9.5

+0

Ja, der Pfad und das Bild existiert. Ich versuche wahrscheinlich, den Rubin oder was zu aktualisieren. –

+0

Wird Datei.existiert? (Image_path) gibt true zurück? –

+0

ja, tut es. auch, kein glück mit update rubin. –