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

 我来答
金色潜鸟
2017-02-06 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5545万
展开全部
与操作系统有关,你可以找现成的软件来用。或自己写程序。例如:
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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式