了解移动web像素的知识,主要是为了切图时心中有数。本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关知识。

一、前置知识

1、 iphone5的相关参数

iPhone 5
处理器
苹果A6处理器,1.3Ghz
屏幕
四英寸1136 × 640 Retina Display
主摄像头
800万像素
前置摄像头
120万像素
闪存
16GB 32GB 64GB
机身
前钢化玻璃面板,后混合面板+金属边框
手机尺寸 123.8×58.6×7.6mm
网络支持
2G:GSM 850/900/1800/1900
  3G:CDMA EV-DO rev.A
WCDMA 850/900/1900/2100
中国移动2G 中国联通2G/3G/4G(美版v版支持电信3G)

2、勾股定理:直角三角形,2直角边的平方和等于斜边的平方!

二、像素相关名词和名词之间的关系

1、px,dp和dpr

px:css pixels 逻辑像素,浏览器使用的抽象单位【切图用逻辑像素】

dp:device independent pixels 设备无关像素,即物理像素  【设备厂商会提供物理像素】

dpr:devicePixelRatio设备像素缩放比 【处理物理像素和逻辑像素的关系,具体换算关系后面再讲】

2、DPI和PPI

DPI:打印机每英寸可以喷的墨汁点(印刷行业)

PPI:即Pixels per inch,屏幕每英寸的像素数量,即单位英寸内的像素密度

在计算机显示设备参数描述上,二者意思一致。

PPI越高,像素数越高,图像越清晰

2.1PPI和默认缩放比DPR的关系

Retina屏(高清屏):dpr都是大于等于2

由对应关系可以看出,PPI越高,系统默认设置缩放比越大,可视度越低(小)。

2.2计算iphone5的PPI

由前置知识能得知iphone5的像素信息:四英寸1136 × 640 Retina Display

首先根据勾股定理计算出iphone5手机屏幕的对角线等效像素,然后除以对角线(4英寸),就得到PPI为326.

注意一点:计算时用的是物理像素,而不是px。

根据3.1的对应关系,可知iphone5的ppi为326对应的屏幕缩放比dpr为2

2.3通过window获取设备的dpr【update20161125】

在移动端浏览器中及某些桌面浏览器中,window对象有一个devicePixelRatio属性,我们可以通过window.devicePixelRatio直接获取到设备的dpr。

3、dpx表示px和物理像素dp的关系

我们已经知道iphone5的dpr为2,给出一个像素在iphone5中的形象图如下:

这个图可以从2个角度理解

  • 平面上:1px等于2的平方*dp
  • 横向维度或者竖向维度上:1px等于2*dp

3.1计算iphone5的逻辑像素

由前置知识能得知iphone5的像素信息:四英寸1136 × 640 Retina Display

现在也已经知道iphone5的dpx为2,再根据上面的计算公式可以算出针对iphone5切图时其逻辑像素为:320px*568px。

4、由设备分辨率得到屏幕分辨率

整个关系串联起来如下:

参考:http://www.imooc.com/u/2022616/courses?sort=publish

扩展阅读:

设备像素比devicePixelRatio简单介绍(张鑫旭)

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/5443445.html有问题欢迎与我讨论,共同进步。

移动WEB像素相关知识的更多相关文章

  1. 移动WEB viewport 相关知识

    了解移动web viewport的知识,主要是为了切图时心中有数.本文主要围绕一个问题:切图时怎样设置<meta name="viewport">相关参数?围绕这个问题 ...

  2. Web缓存相关知识整理

    一.前言  工作上遇到一个这样的需求,一个H5页面在APP端,如果勾选已读状态,则下次打开该链接,会跳过此页面.用到了HTML5 的本地存储 API 中的 localStorage作为解决方案,回顾了 ...

  3. web聊天相关知识

    http相关知识 http是无状态,请求,响应模式的通信模式,就是用户每次通过浏览器点击一下页面,都需要重新与web服务器建立一下连接,且发送自己的 session id 给服务器端以使服务器端验证此 ...

  4. web.xml相关知识摘录整理

    web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...

  5. 了解Web的相关知识

    一.WWW基础 WWW(world wide web, 万维网)是Internet上基于客户端/服务器体系结构的分布式多平台的超文本超媒体信息服务系统.它利用超文本(hypertext).超媒体(hy ...

  6. WEB的相关知识总结

    JS-->OOP/Module, DOM, JSON, AJAX------------------><script>, script.js的内容 HTML/JS/CSS HT ...

  7. WEB相关知识和Tomcat服务器

    WEB相关知识 1.Internet上供外界访问的Web资源分为: 静态web资源:指web页面中供人们浏览的数据始终是不变的. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间 ...

  8. web跨域及cookie相关知识总结

    原文:web跨域及cookie相关知识总结   之前对于跨域相关的知识一致都很零碎,正好现在的代码中用到了跨域相关的,现在来对这些知识做一个汇总整理,方便自己查看,说不定也可能对你有所帮助. 本篇主要 ...

  9. web前端基础知识及快速入门指南

    web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...

随机推荐

  1. jQuery LigerUI系列:ligerComboBox

    1. ligerComboBox参数.方法及事件 1.1 参数 2. ligerComboBox示例 2.1 初始化HTML select控件 <link href="/Scripts ...

  2. JavaScript 解决 onblur 与 onclick 冲突

    <input type="text" onblur="function1" /> <input type="button" ...

  3. C# 合并及拆分PDF文件

    C# 合并及拆分PDF文件 有时我们可能会遇到下图这样一种情况 — 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个 ...

  4. 基于.NET平台常用的框架整理(转)

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的 学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  5. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  6. Vertica 7.1安装最佳实践(RHEL6.4)

    一.前期准备工作 1.1各节点IP和主机名 1.2上传脚本并设定环境变量 1.3添加信任 1.4前期准备检查并调整 二.Vertica安装 三.集群性能评估 一.前期准备工作: 1.1各节点IP和主机 ...

  7. angularjs和ajax的结合使用 (二)

    今天我们来继续丰富上次的例子.我们来搞些 稍微复杂点的应用. 首先我们来加一个全选 的功能. 上一篇的例子里我们看到 分页时载入的是我们通过linq 查询自定义列 然后构建的匿名类 .使用这种EF框架 ...

  8. dicom网络通讯入门(3)

    接下来可以进行消息传递了 ,也就是dimse ,再来复习下 什么是dimse .n-set  n-create c-echo 这些都是dimse  他们都是属于一种结构的pdu 那就是tf-pdu(传 ...

  9. C#WebBrowrse拦截下载对话框

    为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙 ...

  10. Java注解

    Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理.注解是一种元数据,起到了描述.配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotati ...