From: Noritsugu Nakamura Date: 2001-07-07T19:05:23+09:00 Subject: [ruby-list:30508] Ruby/Tk TkPhotoImage#write の使い方 中村 のりつぐ です。 Ruby/Tk の TkPhotoImage#write の使い方について: 以下のようなコードを書いてみたのですが、後半の Button を 押すと怒られてしまいます。 /usr/local/lib/ruby/1.6/tk.rb:645:in `_invoke': expected integer but got "0 0 50 50" while executing tkcanvas.rb の TkPhotoImage#write の部分を読んだのですが、 オプションをどう記述して良いか分かりませんでした。 TkPhotoImage#read, copy も同様のコードなので多分 ひっかかってしまうと思うのですが…。 #!/usr/bin/env ruby require "tk" logo1 = TkPhotoImage.new { file [Tk::TK_LIBRARY, 'demos', 'images', 'tcllogo.gif'].join(File::Separator) } TkLabel.new { image logo1 pack } TkButton.new { text "write" command { print "write ppm file\n"; logo1.write('write.ppm', 'format' => 'ppm') } pack } TkButton.new { text "write 50x50" command { print "write ppm file\n"; logo1.write('write.ppm', 'format' => 'ppm', 'from' => "0 0 50 50" ) } pack } Tk.mainloop 該当する Tcl/Tk コードもつけておきます。 #!/usr/bin/env wish image create photo logo1 -file $tk_library/demos/images/tcllogo.gif label .l1 -image logo1 pack .l1 button .b1 -text write -command { puts "write ppm file"; logo1 write write.ppm -format ppm } pack .b1 button .b2 -text "write 50x50" -command { puts "write ppm file"; \ logo1 write write.ppm -format ppm -from 0 0 50 50 } pack .b2 中村 典嗣 E-mail: nnakamur@mxq.mesh.ne.jp