我想写一个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