python抓取屏幕一个点的颜色(python 屏幕取色)

http://www.itjxue.com  2023-04-14 03:58  来源:未知  点击次数: 

如何用Python模拟鼠标点击/检测光标下的颜色

python有鼠标事件函数,不知道你在什么上橡亏做,如果用opencv就是onMouse这个回调函数,里面伍如晌有点击左键这个腔锋事件,获得该坐标点的位置。然后将图片转换为数组,找到对应位置,获取第三维度上的值,就是该点的(RGB通道的)颜色值。方法很多,思路都是大同小异,首先找到该坐标点位置,再在对应图片数组里获取它的像素点值。

如何使用Python如何获取某像素点处颜色

方法一:

# -*- coding: cp936 -*-

from ctypes import *

#引入winapi

gdi32 = windll.gdi32

user32 = windll.user32

#获取句柄

hdc = user32.GetDC(None)

#获取指定像素的颜色

c = gdi32.GetPixel(hdc,100,50)

#打印十进制转化为十六好旁进磨消制友游橡的颜色

print hex(c)

怎么取屏幕上任意点的颜色值

与操作系统有关,你可以找现成的软件来用。或自己碧液写程序。例如:

android获取屏幕某一点的像素值:

Android屏幕绘制基本与linux相同,都是使用Framebuffer机制来绘制屏幕。FrameBuffer提供接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地前培址空间之后,就可悔悔物以直接进行读写操作,应用程序可以简单地通过改变这段内存的值来改变屏幕上某一点的颜色。例如如果你想把一张bitmap图片显示到屏幕上去,你只要解析bitmap之后把数据bit

copy进framebuffer,屏幕就会立刻显示出来。一般Linux的framebuffer 对应/dev/fb0这个字符设备文件。 Android稍微改了改,放在/dev/graphics/fb0下。

这样我们就可以通过读取fb0来获取屏幕信息了。比如想要获取屏幕上坐标为(x,y) 一点的像素值,就可以先获取fb0的比特流,读取相应位置的数据。如果屏幕是32位色的,一个像素点的大小就是32/8=4byte。那么(x,y)点在fb0中的位置就是从(width*y+x)*4开始、长4byte的一段。

windows 系统,你可以按 组合键: Ctrl+PrScr (即print screen) 获得 全屏幕图像,用 mspaint 存放为 BMP 或 PNG 格式,然后 根据你要的坐标点,读出这点像素。或者,用 OpenGL 写程序,直接读得 鼠标点 的 RGB.

(责任编辑:IT教学网)

更多

推荐ASP.NET教程文章