那些个像素

1,物理像素(physical pixel)

一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。

2,dpr  

设备像素比(简称dpr)定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:

设备像素比 = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向

在javascript中,可以通过window.devicePixelRatio获取到当前设备的dpr。

在css中,可以通过-webkit-device-pixel-ratio-webkit-min-device-pixel-ratio和 -webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview)。

这个参数实际上量化了屏幕的物理分辨率和显示清晰度,比如iphone的DPR就是2,比一般的手机都要高。

dpr是设备像素比的意思,dppx是每像素有移少点的意思

dpi和屏幕尺寸(英寸)以及分辨率有关系,dpi是每英寸有多少个点么 401 = sqrt(1080 * 1080 + 1920 * 1920) / 5.5,在开发中你不用关心它。‘
写代码的时候只要关注dpr就可以了,网页的视口的大小是设备分辨率/dpr ,比如iphone 6p是1080p的,但是dpr是2.46,所以实际页面大小是440 * 780 这个分辨率对于苹果设备开发绝对是一个灾难,因为大部分1080p的设备的dpr都是3

3,设备独立像素

设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。

所以说,物理像素和设备独立像素之间存在着一定的对应关系,这就是接下来要说的设备像素比

4,

时间: 2024-10-06 23:27:57

那些个像素的相关文章

HTML5 Canvas ( 图形的像素操作 ) getImageData, putImageData, ImgData.data

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvas</title> <script type="text/javascript" src="../js/jQuery.js"></script> <style type="text/css">

OpenCV 访问Mat 像素

场景 在进行烟雾检测的过程中,需要访问Mat指定区域的像素值,然后判断是否符合烟雾的像素特征(当然,在网上查询到的烟雾像素特征,实际上,并没有正确识别出烟雾),可通过如下的方式进行操作 int  similarDegree = 0; int channel = srcMat.channels(); for (int i=info.smokeLeftTopPos.y; i<maxHeight; i++) { for (int j=info.smokeLeftTopPos.x; j<maxWidt

设备像素比dpr介绍

首先介绍一下概念 devicePixelRatio其实指的是window.devicePixelRatio window.devicePixelRatio是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例. 公式表示就是:window.devicePixelRatio = 物理像素 / dips 好了,到了这里有出来了两个概念,物理像素 和  dips 物理像素,比较好理解,一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调

U3D屏幕坐标,世界坐标,像素坐标之间的关系

U3D中,屏幕坐标和世界坐标单位一样,二者之间是直接的一一对应关系,不受屏幕分辨率影响.默认情况下屏幕空间画布的左下角坐标是世界原点(0,0,0),这种情形下,世界空间的点(1920,1080,任何值)就对应屏幕上的点(1920,1080,0). sprite的大小是由实际图片的像素确定的,如512X512的图片放到sprite上,sprite的大小是5.12X5.12.即:默认情况下3D空间中1=100像素,这个是可以在每张图片导入设置中设定的. 由此,可见,屏幕分辨率代表的是游戏窗口能看到的

android-getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位

使用如下代码时,发现字号不会变大,反而会变小:size = (int) mText.getTextSize() + 1;mText.setTextSize(size);后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果. 这里可以用setTextSize()的另外一种形式,可以指定单位:setTextSize(int unit, int size)TypedValue.COMPLEX_UNIT_PX : Pi

图像像素的获取和操作(第三天)

图像处理顾名思义就是对图像的像素进行操作,这是核心基础! 有三种方法对图像的操作:(图像像素的获取参差在其中) 第一种:使用指针进行操作 这个指针在上一篇博文中已经提到,这节博文进行加深理解. 先讲解opencv的指针应用: 1 Mat image = cv::Mat(400, 600, CV_8UC3); //宽400,长600,3通道彩色图片 rows=400,cols=600 2 uchar * data000 = image.ptr<uchar>(0);//第一行第一个元素地址 3 u

根据图片的像素 手势穿透问题

新建一个UIImageView的子类. 并重写 : -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{ unsigned char pixel[1] = {0}; CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 1, NULL, kCGImageAlphaOnly); UIGraphicsPushContext(context); [self.imag

ArcGIS for Android地图上实际距离与对应的屏幕像素值计算

/** * 将实际地理距离转换为屏幕像素值 * * @param distance * 实际距离,单位为米 * @param currScale * 当前地图尺寸 * @param context * @return */ public static double metreToScreenPixel(double distance, double currScale, Context context) { float dpi = context.getResources().getDispla

python PIL比较图片像素

1 # -*- coding: utf-8 -*- 2 3 from PIL import Image 4 from pylab import * 5 6 def compare_pic_L(pic1,pic2): 7 #打开第一张图片 8 im1 = Image.open(pic1).convert('L') 9 print im1.format ,im1.size, im1.mode 10 11 #像素值转数组 12 aim1 = np.transpose(array(im1)) 13 #i

DICOM图像像素值(灰度值)转换为CT值

CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071.用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu. 在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这个范围,通常是0-4096,这是我们常见到的像素值或者灰度值,这就需要我们在图像像素值(灰度值)转换为CT值. 首先,需要读取两个DICOM Tag信息,(0028|1052):rescale intercept和(0028|1053):rescale slope. 然后通过公式: Hu = pix