
如果您想在手机上显示亮度数字,可以尝试以下方法:
1 使用第三方应用程序。有许多第三方应用程序可以在手机屏幕上显示亮度数字,如Lux、Velis Auto Brightness等。您可以在应用商店中搜索并下载这些应用程序,并按照说明进行设置。
2 使用开发者选项。在Android手机上,您可以打开开发者选项,并启用“显示GPU渲染器”选项。这将在屏幕的右上角显示一个小的数字,表示当前的亮度级别。
3 使用屏幕取色器。屏幕取色器是一种可以读取屏幕上每个像素颜色的工具。您可以在应用商店中搜索并下载屏幕取色器应用程序,然后将其用于读取亮度数字。
请注意,这些方法可能会影响手机的电池寿命和性能。在使用这些方法之前,请确保了解其可能的风险和后果。
我不是太明确你第一个问题的意思。我的理解是你要对屏幕的某个目标进行取色。问题是如何确认这个目标的位置。如果目标是固定的坐标或者在固定的屏幕比例中出现,那么直接针对的计算坐标来取色即可。但我想你希望的是对一个不固定的坐标取色。那么多半是窗口坐标,这样的话可以获取窗口的DC来取色。总的来说,你必须确立一个参照坐标。
2,出错是因为并不是所有DC都支持GetPixel 和 SetPixel。例如win7的很多窗体,Java程序的窗体。不过DirectX的窗体好像是可以的。因为这个原因,考虑到兼容性需要,我往往是使用BitBlt来对一个像素点截屏再进行取色。一般来说BitBlt 不会让效率降低太多。可能几十倍而已,几千几百个点的话可以忽略。如果你是对大范围取色,BitBlt会比GetPixel更有效率。
3读取jpg需要使用一些解码包会比较好,因为jpg的结构相当复杂,自己写代码会非常费事,事实上,我对JPG的结构还挺熟悉,但从来不敢想象自己写一个关于他的解压包。如果你是懒得找包的话,给你一个不太好的但可以处理的办法:使用JNI(Java native interface),他可以用作java 和c之间的界面, 由jdk自带。你可以在C里调度Java。java的 ImageIOread(File file);方程可以直接读取bmp gif jpg 和 png 文件。读出来的BufferedImage 可以直接获取像素资料,但是效率不高,你可以从BufferedImage对象中获取 WritableRaster,然后获取DataBuffer 最后是直接的 byte 或者 int 数组数据。但是,前提是你要会JNI,同时JNI在C中调度Java的代码也是非常糟糕的,代码效率还可以,但代码会极度难看。如果真的决定使用JNI,那我建议你先用Java写一个 byte[] readJPG(String path);的方程然后再C调度这个方程获取 byte 数组,而不是直接从C调用ImageIOread(),这样会省事非常多
但还是建议找C的解码包。给代码是不可能的,我原意话10分钟来回答问题,但不太原意话1小时来写代码。而且自己寻找答案会获得和学习更多。
最后如果你想要做的是图像识别,可以说jpg不是很好的选择,因为那是一种会丢失数据的文件格式,你用点对点的精确识别方法肯定(999999%)不能识别出。用模糊识别是要有很好的技术知识同时效率也会降低。建议使用BMP作为识别。BMP的解码包和源码网上一大堆。
怎么会呢?你放在timer里就会一直取色的
不过你“只想获取VB程序FORM内的颜色 ”最下化了 form不在桌面上了当然不显示了
getpixel是取得鼠标下的颜色值 前面有其他窗口 当然就只能取到其他窗口的内容了~
使用这个函数,
COLORREF
GetPixel(
HDC
hdc,
//
handle
to
DC
int
nXPos,
//
x-coordinate
of
pixel
int
nYPos
//
y-coordinate
of
pixel
);
可以调用之前调用GerCursorPos
来获取鼠标在屏幕上的位置,
如果仅仅是为了取色的话,桌面窗口的HDC的获取,调用GetDC(NULL)来获取到,(不知到delphi里NULL写成什么样子,写成
GetDC(0)也可以。)
在把GerCursorPos
获取的屏幕坐标也给传过去,GetPixel即可返回屏幕坐标的相应颜色值了。
COLORREF
是一个
DWORD
类型,自己分析高低为就可以知道RGB值了。
可以参考使用GetRValue,GetGValue,GetBValue
宏
以上就是关于手机亮度数字显示全部的内容,包括:手机亮度数字显示、VB用GetPixel屏幕取色的几个问题、VB取色问题getpixel等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)