# Using TkPhotoImage

**URL:** <https://www.ruby-forum.com/t/using-tkphotoimage/117809>\
**Category:** Ruby\
**Created:** [October 20, 2007, 4:30pm UTC](https://www.ruby-forum.com/t/using-tkphotoimage/117809 "2007-10-20T16:30:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ed\_Redman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/b4bc9f/32.png) [@Ed\_Redman](https://www.ruby-forum.com/u/Ed_Redman)\
**Post date:** [October 20, 2007, 4:30pm UTC](https://www.ruby-forum.com/t/using-tkphotoimage/117809/1 "2007-10-20T16:30:59Z")

</div>

I am trying to convert a set of cards from a tcl/tk program that uses  
data to create the image. I have been able to use a gif file to create  
the image but would like to data as the tcl program does.

Here is the image in the tcl program  
image create photo ::img::2d -format gif -data {  
R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I  
uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq  
1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm  
mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM  
Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH  
XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi  
6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B  
PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=}

Could someone help me convert this into ruby.

thank you

---

<div class="post-metadata">

**Author:** ![Ed\_Redman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/b4bc9f/32.png) [@Ed\_Redman](https://www.ruby-forum.com/u/Ed_Redman)\
**Post date:** [October 21, 2007, 1:42am UTC](https://www.ruby-forum.com/t/using-tkphotoimage/117809/2 "2007-10-21T01:42:38Z")

</div>

From: Ed Redman [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: using TkPhotoImage  
Date: Sat, 20 Oct 2007 23:30:06 +0900  
Message-ID: [KdoSi.21949$GO5.15601@edtnps90](mailto:KdoSi.21949$GO5.15601@edtnps90)

> I am trying to convert a set of cards from a tcl/tk program that uses  
> data to create the image. I have been able to use a gif file to create  
> the image but would like to data as the tcl program does.
> 
> Here is the image in the tcl program  
> image create photo ::img::2d -format gif -data {  
> (snip)  
> Could someone help me convert this into ruby.

## Here you are.

require ‘tk’

puts ‘=============\< pattern 1 \>===========================’  
Tk.ip\_eval \<\<END\_OF\_TCL\_SCRIPT  
image create photo ::img::2d -format gif -data {  
R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I  
uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq  
1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm  
mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM  
Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH  
XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi  
6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B  
PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=}

label .l -image ::img::2d  
pack .l  
END\_OF\_TCL\_SCRIPT  
label\_obj1 = TkComm.window(‘.l’)  
p [‘label\_obj1’, label\_obj1.image, label\_obj1]

puts ‘=============\< pattern 2 \>===========================’  
Tk.ip\_eval \<\<END\_OF\_TCL\_SCRIPT  
image create photo ::img::2d -format gif -data {  
R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I  
uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq  
1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm  
mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM  
Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH  
XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi  
6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B  
PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=}  
END\_OF\_TCL\_SCRIPT  
label\_obj2 = TkLabel.new(:image=\>‘::img::2d’).pack  
p [‘label\_obj2’, label\_obj2.image, label\_obj2]

puts ‘=============\< pattern 3 \>===========================’  
img = TkPhotoImage.new(:format=\>‘gif’, :data=\>’  
R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I  
uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq  
1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm  
mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM  
Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH  
XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi  
6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B  
PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=  
')  
label\_obj3 = TkLabel.new(:image=\>img).pack  
p [‘label\_obj3’, label\_obj3.image, label\_obj3]

puts ‘=============\< image names \>===========================’  
p [‘TkImage.names’, TkImage.names]

puts '==========\< create TkPhotoImage object for “::img::2d”

> ===========’  
> img2 = TkPhotoImage.new(:imagename=\>‘::img::2d’,  
> :without\_creating=\>true)  
> p [‘image for ::img::2d’, img2, img2.current\_configinfo]

label\_obj4 = TkLabel.new(:image=\>img2).pack  
p [‘label\_obj4’, label\_obj4.image, label\_obj4]  
p  
[‘TkImage::Tk\_IMGTBL[label\_obj4.image]’,TkImage::Tk\_IMGTBL[label\_obj4.image]]

puts ‘=============\< image names \>===========================’  
p [‘TkImage.names’, TkImage.names]

Tk.mainloop
