TkLabel.new do
image TkPhotoImage.new(‘file’=> ‘world.gif’)
end.pack
Tk.mainloop
But if I point it to some PNG or JPEG file, I get a “couldn’t recognize
data in image file” exception. If I add an explicit ‘format’ => ‘png’, I
get a “image file format ‘png’ is not supported” exception.
If you talk about standard Tcl/Tk only, the answer is “YES”
(see “man n photo”).
To support JPEGs, PNGs, and so on, Tcl/Tk needs “Img” extension.
Possibly, ubuntu package name is “libtk-img”.
When your Tcl/Tk has “Img” extension, Ruby/Tk also supports it.
Please call “require ‘tkextlib/tkimg’”, and you can use JPEGs and
PNGs on your Ruby/Tk.
As you know, Ruby/Tk uses Tcl/Tk libraries.
It means that functions supported by your Ruby/Tk depend on your
Tcl/Tk on your environment.
[…]
Ruby/Tk can use almost all of Tcl/Tk extensions.
For some of them, Ruby/Tk has wrapper libraries (“tkextlib/*”).
For others, although there are no wrapper libraries, Ruby/Tk can call
functions of those extensions directly (by “Tk.tk_call” method) […]
Thank you for the thorough explanation!
(It’s a pity we don’t have a wiki to collect TK-related info. I did
search for one.)
From: Albert S. [email protected]
Subject: Re: Tk supports only GIF?
Date: Sun, 25 Jan 2009 08:07:29 +0900
Message-ID: [email protected]
If you talk about standard Tcl/Tk only, the answer is “YES”
BTW, I’m not sure I understand what you wrote here. (What does "standard
Tcl/Tk mean?)
I’m sorry about my poor English.
I said it as “Tcl/Tk with no extension”.
As you know, Ruby/Tk uses Tcl/Tk libraries.
It means that functions supported by your Ruby/Tk depend on your
Tcl/Tk on your environment.
When you have no Tcl/Tk extensions on your environment,
Ruby/Tk can use Tcl/Tk’s standard (built-in) widgets and functions only.
Tcl/Tk’s “photo” manual describes “At present, only GIF and PPM/PGM
formats are supported”.
Tcl/Tk’s “Img” extension library (loadable module) adds support for
some other image formats to Tcl/Tk.
And then, Ruby/Tk can treat image formats supported by “Img” extension.
Ruby/Tk can use almost all of Tcl/Tk extensions.
For some of them, Ruby/Tk has wrapper libraries (“tkextlib/*”).
For others, although there are no wrapper libraries, Ruby/Tk can call
functions of those extensions directly (by “Tk.tk_call” method),
I think that it is not so difficult to write a wrapper library for
such a extension.
For some of them, Ruby/Tk has wrapper libraries (“tkextlib/*”).
For others, although there are no wrapper libraries, Ruby/Tk can call
functions of those extensions directly (by “Tk.tk_call” method) […]
Thank you for the thorough explanation!
(It’s a pity we don’t have a wiki to collect TK-related info. I did
search for one.)
The Tcl community itself has an excellent wiki:
While there isn’t much Ruby-specific content there, there is a huge
amount of information about Tk.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.