您的位置:首页 > 其它

用什么函数能获取屏幕当前像素值

2010-10-08 21:15 176 查看
我想获取屏幕上正在播放的视频中某点的像素值,但是用getpixel无法实现,整个视频画面的像素值都是(16,0,16),屏幕上其他各处像素值都可以判断,但播放中的视频却不行,请问有什么别的函数可以取得视频中正在变化的某点的像素值?

是啊,我就是这么做的,但是正在播放的视频好像不是在一个层面上的,getpixel取不到。。。悲剧啊,不知道该怎么弄

可能播放软件用了某种特殊的处理方法所以得不到不懂,也许,播放软件发的视频不是用gdi画的,
如果播放软件使用directdraw overlay表面播放视频,
一般是无法抓到视频图像的。可以禁用显卡硬件加速来禁止
播放软件使用overlay,或者打开两个播放进程,这样一般
其中一个就可以抓图了,因为大多数显卡只支持一个overlay.

那得看你是通过什么方式实现视频播放的吧,既然你不能通过GDI来实现视频播放,那当然也不能通过它来获取他的像素。视频文件的解码和编码都没那么简单的,估计你要能用实现播放的方式来获取当前播放的帧数据,然后对数据进行解码得到你所要的数据! 我对视频部分不了解,本人的愚见!个人见解: 在使用QQ截图的时候, QQ会是当前的屏幕"静止", 你可以试试这种方式.

先声明我是一个初学者,对楼主的问题不是很懂,
下面是windows程序设计第八章 计时器 的最后一个例子,
我试过,可以
我想,楼主应该是少了一个计时器吧(用来更新屏幕上点的颜色)
但是正在播放的视频好像不是在一个层面上的,getpixel取不到。。。悲剧啊

VC Dialog 工程, 默认绘图, 最小化时,刷新背景, 实验一下,搞个位图出来,取像素.

我说过我只是一个菜鸟,
我没有学过MFC,我现在学Windows API,正准备学MFC
我只知道MFC就是对Windows API的封装
上面的例子就是用GetPixel函数来取得屏幕上点的颜色的
只是上面的例子是直接使用windows的接口函数API来写的
回复楼上:例子我是从书上贴过来的,
我也运行过了,确实也得到了动画像素颜色的值
定时器只是用来每隔一定的时间(如10毫秒)就读一次屏幕上某点的颜色,对比上一次读的颜色看有没有改变

在去某个点的像素值的时候,可以像在视频流中想保存这一帧的像素值,再根据物理坐标得到像素:

如果是我在操作:
添加一个鼠标左键的响应函数,然后得到这点的物理坐标,同时写一个函数,获取下一帧的的视频数据,并保存,根据获得的物理坐标,索引需要的像素值。以前,摄像头抓拍的时候我就是这样做的。视频流中相相邻两帧之间的差别非常的小仅是处理应该是可以的

来源:英超直播
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: