WIN10下系统缩放比例(DPI)的魔幻设置
前言
前几天突然想起了以前做的一个答题器,原理是截取图片以后用OCR识别出题目,然后再过题库。但是一直有个BUG没法解决,就是WIN7/10有系统缩放(DPI),如果DPI不是100%,就会导致截图区域不对,无法识别。
在网上查阅了很多资料,主要都是通过Windows的GetDeviceCaps加上OGPIXELSX参数(或者OGPIXELSY也行)来获得系统DPI的。这个函数查询出来结果需要换算成缩放百分比。
但是自己试了很长时间,发现无论缩放比例设置成什么样子,这个函数查出来的永远都是96(就是没有缩放的时候的结果)。过了几天,又突然发现能正常的查出120了(也就是125%的缩放)。绞尽脑汁想了很久,才想出来是为什么。
第二种获得DPI的方法则是用可视桌面的像素(DESKTOPHORZRES)除以真实像素(HORZRES)来获得比例。这两种方法有什么区别后面会着重说,我们先来讲WIN10的坑爹设置。
WIN10的坑爹设置
在WIN10里有两种设置缩放的方法,一种是在“更改文本、应用等项目的大小”里选择ÿ