在Ruby中显示图像并获取鼠标点击坐标

时间:2014-11-17 17:02:03

标签: ruby image window coordinates tk

我想写一个Ruby脚本,它显示一个图像(最好缩小到屏幕大小),让我点击它,然后退出,然后返回/打印鼠标点击XY坐标。我怎样才能做到这一点?也许任何窗口宝石像Shoes / Tk或任何外部图像查看程序,可以编写脚本以返回点击坐标。

我的代码(最后我已经完成了):

require "green_shoes"
require "pry"
def get_nh(img)
  img[2]>img[1] ? 700 : (img[2]/(img[1]/700.0)).to_i
end

def get_nw(img)
  img[2]>img[1] ? (img[1]/(img[2]/700.0)).to_i : 700 
end

list=Dir["*.jpg"].sort
imgs=list.collect.with_index{|img, index| print "#{(100*(index.fdiv list.size)).round(2)}%";print 13.chr;ret=%x{jpeginfo -c \"#{img}\"};t=ret.scan(/([0-9]+) x ([0-9]+)/).flatten;[img,t[0].to_i,t[1].to_i,ret =~ /WARNING/,ret]}.select{|img| img[3]==nil}
puts imgs
img_index=0
begin 
 Shoes.app width: 710, height: 710 do
    nw=get_nw(imgs[img_index])
    nh=get_nh(imgs[img_index])
    img=image imgs[img_index][0], :width => nw, :height => nh
    img.click { |button, x, y| 
      img_index+=1 if img_index<imgs.size-1;nw=get_nw(imgs[img_index]);nh=get_nh(imgs[img_index]);puts "#{x}, #{y}, #{img_index}, #{nw}, #{nh}"; img.width=nw;img.height=nh;img.path=imgs[img_index][0]
    } 
 end
rescue => e
 binding.pry
end

0 个答案:

没有答案