Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
鼠标悬停时绘制图像的Python部分_Python_Image Processing_Pygtk - Fatal编程技术网

鼠标悬停时绘制图像的Python部分

鼠标悬停时绘制图像的Python部分,python,image-processing,pygtk,Python,Image Processing,Pygtk,我的问题与Python GTK有关 我有一个图像-一个JPG-我画在绘图区域。我想显示图像的一部分,比如说一个10pix×10px的正方形,只显示鼠标指针当前所在的位置。距离鼠标10 x 10 px正方形的所有物体都应隐藏,即黑色 我是PyGtk的新手,有人能帮忙吗 谢谢 #!/usr/bin/python import os import sys import gtk MASK_COLOR = 0x000000

我的问题与Python GTK有关

我有一个图像-一个JPG-我画在绘图区域。我想显示图像的一部分,比如说一个10pix×10px的正方形,只显示鼠标指针当前所在的位置。距离鼠标10 x 10 px正方形的所有物体都应隐藏,即黑色

我是PyGtk的新手,有人能帮忙吗

谢谢

#!/usr/bin/python                                      

import os
import sys
import gtk

MASK_COLOR = 0x000000

def composite(source, start_x=345, start_y=345):
  width = 50                                    
  height  = 50                                  
  alpha = 255                                   
  dest = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8 ,800,800)
  dest.fill(MASK_COLOR)                                           
  source.composite(dest,                                          
                   start_x,                                       
                   start_y,
                   width,
                   height,
                   0,
                   0,
                   1,
                   1,
                   gtk.gdk.INTERP_NEAREST,
                   alpha)

  return dest


def it_moved(widget, event, window, masked, original):
  r = window.get_display().get_window_at_pointer()
  masked.set_from_pixbuf(composite(original.get_pixbuf(), r[1], r[2]))
  return True


if __name__ == '__main__':
  window = gtk.Window()
  eb = gtk.EventBox()
  original = gtk.Image()
  original.set_from_file(sys.argv[1])

  masked = gtk.Image()
  masked.set_from_pixbuf(composite(original.get_pixbuf()))

  eb.add(masked)
  eb.set_property('events', gtk.gdk.POINTER_MOTION_MASK)
  eb.connect('motion_notify_event', it_moved, window, masked, original)
  window.add(eb)
  window.set_size_request(800,800)
  window.show_all()
  gtk.main()
这应该像你描述的那样。我选择显示一个50x50的区域,因为你的区域在指针下看起来有点小。我也没有隐瞒