由于最近在弄自绘界面,经常会在一些软件上取色。本来以前一直都用泪闯天涯的彗星小助手,很方便,但自从用了高分屏+Win10后,如果屏幕显示缩放不是100%,就会出现各种不兼容的问题,比如取色、截图结果都不准。所以就自己写了这个屏幕取色的小工具。
主要原理说明:
第一步:截取整个屏幕并生成位图图像
需要获取屏幕设备场景(DC)转换为位图,如果用易语言的 快照() 命令在显示缩放不为100%的情况下是无法截取整个屏幕的
第二步:处理鼠标坐标偏差
举例:屏幕最大分辨率1920*1080 在显示缩放125%时,鼠标最大坐标1536*860(好像是),直接用鼠标坐标肯定是不准确的,需要进行转换。
计算方式:鼠标坐标*显示缩放比=最终坐标 比如:1536*1.25=1920
解释:我只在Win10(最新预览版)+高分屏的电脑上做过测试,之前有易友提到win7等系统可能还是会取值不准确,不过主要原理我已说明,有问题的可以自己研究研究,我猜测问题应该是显示缩放比的计算有问题。
源码中用到了GDI+模块,模块源码一并奉上!