PPI(pixels per inch)是图像分辨率的单位,表示的是每英寸所拥有的像素(pixel)数目。那如何计算勒?其实PPI计算有这相应的公式,公式为:sqrt(横向的平方+纵向的平方)/屏幕尺寸,注意此处的屏幕尺寸是英寸。
知道了公式,那么计算PPI就没有什么问题了。另外,公式中的横向是指屏幕的x分辨率,纵向是指屏幕的y分辨率。那怎么计算英寸?我们平常使用的是厘米,毫米什么的,其实他们之间也有一个等价换算,即:1英寸=25.4毫米。
知道了这些,那么如何计算屏幕的英寸大小?计算英寸,我们首先要计算知道屏幕对角线的长度(平常所说的英寸是屏幕对角线的长度),计算对角线的长度就是计算斜边的长度,计算斜边,使用勾股定理计算,公式如下:
sqrt(x平方+y平方)。知道了这些公式,那么代码就简单了,代码如下:
int nXScr = 0;//屏幕X分辨率
int nYScr = 0;//屏幕Y分辨率
int nXWidth = 0;//屏幕的宽度
int nYHeight = 0; //屏幕的高度
double dScrLeng = 0:
int nPPI = 0; nXScr = GetSystemMetrics(SM_CXSCREEN);//屏幕X分辨率
nYScr = GetSystemMetrics(SM_CYSCREEN); //屏幕Y分辨率 HDC hdcScreen = GetDC(NULL); //获取HDC句柄
nXWidth = GetDeviceCaps(hdcScreen, HORZSIZE);//屏幕的宽度
nYHeight = GetDeviceCaps(hdcScreen, VERTSIZE); //屏幕的高度
ReleaseDC(NULL, hdcScreen); dScrLeng = sqrt((double) (nXWidth * nXWidth + nYHeight * nYHeight ));
nPPI = (int)(sqrt(nXScr *nXScr + nYScr *nYScr )/(dScrLeng *0.03937007));

  

最新文章

  1. Mysql 数据库之常用命令[更新中...]
  2. http的一些事
  3. 在Mac上配置adb命令
  4. JMeter HTTP Cookie管理器的跨域使用
  5. java 导出Excel 大数据量,自己经验总结!
  6. 对话框式Activity的设置
  7. 单独删除std::vector <std::vector<string> > 的所有元素
  8. IIS出现Server Application Unavailable的解决办法
  9. javascript数组去重算法-----5
  10. MellPlayer, 基于网易云歌单的命令行播放器
  11. The struts dispatcher cannot be found
  12. [Luogu 3807]【模板】卢卡斯定理
  13. mysql慢查询日志按天切割归纳
  14. 100837D
  15. Python元组与列表的区别
  16. java对对象或者map的属性进行排序
  17. python print格式化输出。
  18. C++和java的区别和联系
  19. flask数据库的迁移
  20. Java泛型概述

热门文章

  1. Thymeleaf基本知识(推荐)
  2. Eth合约攻击续
  3. SRS源码——UDP
  4. 移动端一像素边框解决方案[css scale]
  5. sql数据库的基本操作
  6. 112、Java中String类之字符串文本拆分为指定的个数
  7. hbase meta中分区信息错误的记录
  8. SpringMVC架构&组件&执行流程
  9. 网站seo优化教你如何引蜘蛛爬行网站
  10. HDU 5525:Product 欧拉定理