将所有像素的RGB值取整到均匀阴影

时间:2019-06-23 18:09:09

标签: python gtk gdk

我有一个脚本,每1秒拍摄一次屏幕截图,我需要将相同颜色但阴影不同的所有像素四舍五入为相同的rgb值。它的130.000像素,所以我想知道什么是这项工作的最佳选择。另外,如果我必须以算术方式舍入这些像素,或者我可以使用某些功能来捕获已经减少了色图的屏幕(我只会得到纯色),我也不好,并且gdk也不行。我尝试测试一些功能,例如Sature和pixelete,这些功能通过使用pixelete可以帮助我提高这些像素的值,但无论如何它们都不是相同的阴影。

我知道如何将这些颜色一一舍入,但是有很多,我需要快速地做到这一点。试图在numpy中寻找一些东西来做到这一点,但pb.get_pixels_array()返回2D数组,但我找不到任何能帮助我的东西

有些代码我曾经捕获一个像素,但是在主代码中我使用了相同的方式,但是我一次捕获了130.000个像素,所以它是430x320并用pb.get_pixels_array()返回

def getwebsafe(r,g,b):
  rw = 51 * ((int(r)+25)//51)
  gw = 51 * ((int(g)+25)//51)
  bw = 51 * ((int(b)+25)//51)
  return (rw,gw,bw)

def pix(x, y):
  x = int(x)
  y = int(y)
  w = gtk.gdk.get_default_root_window()
  pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, 434, 322)
  cm = w.get_colormap()
  pb = pb.get_from_drawable(w, cm, x, y, 0, 0, 1, 1)
  pb.saturate_and_pixelate(pb,1,True)
  returne = pb.pixel_array[0][0]
  returne = getwebsafe(str(returne[0]),str(returne[1]),str(returne[2]))
  return returne

0 个答案:

没有答案