c/c++ 计算屏幕的PPI
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));
c/c++ 计算屏幕的PPI的更多相关文章
- android计算屏幕dp
首先我们来了解一些基本元素: px:像素,屏幕上的点. dpi:一英寸长的直线上的像素点的数量,即像素密度.标准值是160dp. /*** 正是因为dpi值其代表的特性,所以android项目的资源文 ...
- Android各种屏幕适配原理
dip(dp): device independent pixels(设备独立像素) dip,就是把屏幕的高分成480分,宽分成320分.比如你做一条160dip的横线,无论你在320还480的模拟器 ...
- App如何适应 iPhone 5s/6/6 Plus 三种屏幕的尺寸?
来自//www.cocoachina.com/ 初代 iPhone 2007 年,初代 iPhone 发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到 ...
- Cocos2d-x——Cocos2d-x 屏幕适配新解 – 兼容与扩展【转载】
Cocos2d-x 屏幕适配新解 – 兼容与扩展 本文出自[无间落叶](转载请保留出处):http://blog.leafsoar.com/archives/2013/05-13-08.html 在读 ...
- 像素,分辨率,PPI(像素密度),BPP 扫盲
像素于分辨率 像素,又称画素,为图像显示的基本单位,译自英文“pixel”,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之 ...
- iOS 的 APP 在系统中如何适配不同的屏幕的尺寸
iOS 的 APP 在系统中如何适配不同的屏幕的尺寸 标签: 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone ...
- 分辨率、像素和PPI
屏幕尺寸是指屏幕对角线的长度,一般以英寸为单位,1英寸(inch)=2.54厘米(cm).传统意义上的照片尺寸也是这个概念.所以同样尺寸(指对角线)的屏幕,也可能长宽比率不同.像素(Pixel):是位 ...
- CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport
1.PX(CSS pixels) 1.1 定义 虚拟像素,可以理解为“直觉”像素,CSS和JS使用的抽象单位,浏览器内的一切长度都是以CSS像素为单位的,CSS像素的单位是px. 1.2 注意 在CS ...
- 物理像素,ppi,逻辑分辨率和物理分辨率
1 明确几个概念: 物理像素:屏幕物理像素 屏幕像素密度ppi:pixels per inch,屏幕上每英寸可以显示的像素点的数量,即屏幕像素密度.顺便一提,ppi就是dpi,只不过有文章里说苹果喜欢 ...
随机推荐
- Linux centos7VMware Apache和PHP结合、Apache默认虚拟主机
一.Apache和PHP结合 httpd主配置文件/usr/local/apache2.4/conf/httpd.conf 启动报错 [root@davery ~]# /usr/local/apach ...
- getline及读文件总结
今天由华为软件精英挑战赛的要求,读文件这块自己进行了总结,主要是泛型以及关联容器这块需要加强,现在总结了读文件的iterator的用法. 1.iterator inserter(essential C ...
- UniGUI之ServerModule常用设置(07)
主要有两个设置,它是一个单独的, 这意味着它只在每个应用程序中创建一次. 它主要用于配置各种服务器设置.不能将组件放在ServerModule上. 如前所述, ServerModule 是一个单一的, ...
- 127、Java面向对象之对象的比较
01.代码如下: package TIANPAN; class Book { private String title; private double price; public Book(Strin ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy
转自 :Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18) 在前几篇文章中,我已经向大家介绍了Groovy是什么,学习Groovy的重要性等内容,还不了 ...
- 2016 黑客必备的Android应用都有哪些?
免责声明:本站所发布的此份清单仅供学习之用.我们不支持读者利用其中的任何工具进行任何不道德的恶意攻击行为. 根据业界的一系列评测以及亲身经验,我们整理出了这份最佳Android黑客应用清单.除了对应用 ...
- STM32CubeIDE printf 串口重定向
- Python 3网络爬虫开发实战书籍
Python 3网络爬虫开发实战书籍,教你学会如何用Python 3开发爬虫 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.reques ...
- 嵊州普及Day4T4
题意:求最长上升序列长度和方案数. 思路:经典DP,不需什么别的东西,加一个数组储蓄程序数即可,原题300000可能N2会有问题,但问题不大. 见代码: #include<iostream> ...
- k-近邻算法采用for循环调参方法
//2019.08.02下午#机器学习算法中的超参数与模型参数1.超参数:是指机器学习算法运行之前需要指定的参数,是指对于不同机器学习算法属性的决定参数.通常来说,人们所说的调参就是指调节超参数.2. ...