精华内容
下载资源
问答
  • 使用js换算mm,cm,px

    千次阅读 2019-07-08 16:10:59
    用户自己是可以设置印章尺寸的,但是我将印章的尺寸需要转化成px来定位,那么问题来了,如何将毫米mm转为像素呢?我在网上找了一堆答案,恕我直言,在座位的各位的答案,如同断水流大师兄所言。。。很多博客都是一大...

    问题开始

    今天工作上遇到了一个问题,用户需要在网页上的A4纸上盖章,且章子必须尺寸与纸张尺寸需要一致。用户自己是可以设置印章尺寸的,但是我将印章的尺寸需要转化成px来定位,那么问题来了,如何将毫米mm转为像素呢?我在网上找了一堆代码,并没啥实用价值,一些参数都是固定设备尺寸的约值,很多博客都是一大堆原理,一堆计算,且显示器的尺寸和分辨率五花八门,我们怎么才能算的准?我看了十几篇博客,都是在讲dpi,没一个能快速实现我想要的效果。

    下面上代码,我们把转换值的过程交给浏览器完成,我们不需要去知道设备的尺寸和比例,岂不美哉?

    代码

    	// 获取每毫米的像素值
    	function getOneMmsPx (){
    		// 创建一个1mm宽的元素插入到页面,然后坐等出结果
    		let div = document.createElement("div");
    		div.id = "mm";
    		div.style.width = "1mm";
    		document.querySelector("body").appendChild(div);
    		// 原生方法获取浏览器对元素的计算值
    		let mm1 = document.getElementById("mm").getBoundingClientRect();
    		console.log(mm1);
    		return mm1.width;
    	} 
    

    图片
    在这里插入图片描述

    结语

    假如你想获取别的单位和像素的换算,就用别的单位代替1mm就是的,将换算的过程交给浏览器去实现,这是一种解决思路,或许有别的方法,但是我相信这个是最便捷且最容易理解的。

    展开全文
  • case COMPLEX_UNIT_PX: return value; case COMPLEX_UNIT_DIP: return value * metrics.density; case COMPLEX_UNIT_SP: return value * metrics.scaledDensity; case COMPLEX_UNIT_PT: return value * ...

    发现Android util包中自带了转换函数:


    package android.util;
    
    /**
     * Container for a dynamically typed data value.  Primarily used with
     * {@link android.content.res.Resources} for holding resource values.
     */
    public class TypedValue {.....}  
      /**
         * Converts an unpacked complex data value holding a dimension to its final floating 
         * point value. The two parameters <var>unit</var> and <var>value</var>
         * are as in {@link #TYPE_DIMENSION}.
         *  
         * @param unit The unit to convert from.
         * @param value The value to apply the unit to.
         * @param metrics Current display metrics to use in the conversion -- 
         *                supplies display density and scaling information.
         * 
         * @return The complex floating point value multiplied by the appropriate 
         * metrics depending on its unit. 
         */
        public static float applyDimension(int unit, float value,
                                           DisplayMetrics metrics)
        {
            switch (unit) {
            case COMPLEX_UNIT_PX:
                return value;
            case COMPLEX_UNIT_DIP:
                return value * metrics.density;
            case COMPLEX_UNIT_SP:
                return value * metrics.scaledDensity;
            case COMPLEX_UNIT_PT:
                return value * metrics.xdpi * (1.0f/72);
            case COMPLEX_UNIT_IN:
                return value * metrics.xdpi;
            case COMPLEX_UNIT_MM:
                return value * metrics.xdpi * (1.0f/25.4f);
            }
            return 0;
        }

    展开全文
  • 网页打印与标准纸张换算 px与cm换算

    万次阅读 2018-03-10 19:14:18
    来源:http://www.jb51.net/office/word/67360.html最近开发项目时遇到了网页... 经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8....

    来源:http://www.jb51.net/office/word/67360.html

    最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 

    在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标。 
    经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi 
    A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸 
    所以,A4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的象素。 
    但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。 

    以下是我测试的各种页边距下,A4纸对应的象素尺寸: 
    打印页边距设定为 0mm 时,网页内最大元素的分辨率:794×1123 
    <div style="width:794px;height:1123px;border:1px solid #000000;"> </div> 

    打印页边距设定为 5mm 时,网页内最大元素的分辨率:756×1086 
    <div style="width:756px;height:1086px;border:1px solid #000000;"> </div> 

    打印页边距设定为 19.05mm 时,网页内最大元素的分辨率:649×978 
    <div style="width:649px;height:978px;border:1px solid #000000;"> </div> 
    附: 
    A4纸的尺寸:210×297mm 
    A3纸的尺寸:297×420mm
    最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 
    在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标。 
    经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi 
    A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸 
    所以,A4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的象素。 
    但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。 

    以下是我测试的各种页边距下,A4纸对应的象素尺寸: 
    打印页边距设定为 0mm 时,网页内最大元素的分辨率:794×1123 
    <div style="width:794px;height:1123px;border:1px solid #000000;"> </div> 

    打印页边距设定为 5mm 时,网页内最大元素的分辨率:756×1086 
    <div style="width:756px;height:1086px;border:1px solid #000000;"> </div> 

    打印页边距设定为 19.05mm 时,网页内最大元素的分辨率:649×978 
    <div style="width:649px;height:978px;border:1px solid #000000;"> </div> 
    附: 
    A4纸的尺寸:210×297mm 
    A3纸的尺寸:297×420mm
    展开全文
  • px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别 屏幕密度 px :是屏幕的像素点 in :英寸 mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp ...

    px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别 屏幕密度

    px   :是屏幕的像素点
    in    :英寸
    mm :毫米
    pt    :磅,1/72 英寸
    dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px
    dip  :等同于dp
    sp   :同dp相似,但还会根据用户的字体大小偏好来缩放。
    建议使用sp作为文本的单位,其它用dip


    针对dip和px 的关系,做以下概述:
     

    下面是一些分辨率信息 density就是屏幕密度

     

    名称 分辨率 屏幕密度
    QVGA 320*240 120
    WQVGA400 400*240 120
    WQVGA432 432*240 120
    HVGA 640*480 160
    WSVGA 1024*600 160
    WXGA800 1280*800 160
    WVGA800 800*480 240
    WVGA854 854*480 240
    WXGA720 1280*720 320


    density值表示每英寸有多少个显示点,与分辨率是两个概念。
    不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例


    下面以几个真实机器来加深一下相关概念的认知

      三星i5801 HTC wildfire S(g13) HTC sensation(g14) meizu m9
    分辨率 240*400 320*480 540*960 640*960
    屏幕尺寸 3.2英寸 3.2英寸 4.3英寸 3.5英寸
    屏幕密度 145.77 180.27 256.15 329.65
    DisplayMetrics得出的DPI 120 160 240 320

     

    黄色部分为使用上述公式计算的屏幕密度,绿色部分为使用DisplayMetrics得出的dpi,可以看到比较接近

    有两方面的原因,导致这两个数据不一致

    1.厂商给出的屏幕尺寸参数不是太精确

    2.DisplayMetrics中定义的密度值只有120、160、213、240、320

    ----------------------------------------

    这里从另一个角度可以进行屏幕尺寸的反推,以meizu m9为例,通过DisplayMetrics可以得到其xdpi和ydpi均为325.12

    这样屏幕宽度=640/325.12=1.9685英寸,屏幕高度=960/325.12=2.9527英寸

    使用勾股定理计算得出,对角线尺寸为3.5487英寸





    density=120时 

    屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
    状态栏和标题栏高各19px或者25dip 
    横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
    竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip

    density=160时 

    屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
    状态栏和标题栏高个25px或者25dip 
    横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
    竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip

    density=240时 

    屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
    状态栏和标题栏高个38px或者25dip 
    横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
    竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip

    apk的资源包中

    当屏幕density=240时,使用hdpi 标签的资源
    当屏幕density=160时,使用mdpi标签的资源
    当屏幕density=120时,使用ldpi标签的资源。
    不加任何标签的资源是各种分辨率情况下共用的。
    布局时尽量使用单位dip,少使用px

     

    dp与px换算公式:

    pixs =dips * (densityDpi/160)

    dips=(pixs*160)/densityDpi

     

    dp与px转换的方法:

    public static int dip2px(Context context, float dipValue){
      final float scale = context.getResources().getDisplayMetrics().density;
      return (int)(dipValue * scale +0.5f);
    }

    public static int px2dip(Context context, float pxValue){
      final float scale = context.getResource().getDisplayMetrics().density;
      return (int)(pxValue / scale +0.5f);
    }

     

     

    名词

    解释

    Px

    (Pixel像素)

    不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。

    Screen Size

    (屏幕尺寸)

    一般所说的手机屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的对角线的长度,而不是手机面积。我们可以根据勾股定理获取手机的宽和长,当然还有面积。

    Resolution

    (分辨率)

    指手机屏幕垂直和水平方向上的像素个数。比如分辨率是480*320,则指设备垂直方向有480个像素点,水平方向有320个像素点。

    Dpi

    (dots per inch

      像素密度)

    指每英寸中的像素数。如160dpi指手机水平或垂直方向上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160

    注意:该值对应于DisplayMetrics类中属性densityDpi的值

    Density

    (密度)

    指每平方英寸中的像素数。

    Density=Resolution/Screen size

    注意:在DisplayMetrics类中属性density的值为dpi/160,可用于px与dip的互相转换

    Dip

    (Device-independent pixel,设备独立像素)

    同dp,可作长度单位,不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dip和具体像素值的对应公式是dip值 =设备密度/160* pixel值,可以看出在dpi(像素密度)为160dpi的设备上1px=1dip

    Sp

    (ScaledPixels

     放大像素)

    主要用于字体显示(best for textsize)。根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。

    展开全文
  • 小二寸 35×45mm 413×531px ~50KB 2英寸35mm×49mm(2寸) 二寸 35×49mm 413×579px ~50KB 大2寸35mm×53mm (大2寸) 大二寸 35×53mm 413×626px ~60KB 3英寸35mm×52mm 医保照26mm×32mm (医保照) 驾驶证22mm×32mm...
  • 像素px与厘米怎么换算像素作为图像的一种尺寸,只存在于电脑中,如同RGB色彩模式一样只存在于电脑中。像素是一种虚拟的单位,现实生活中是没有像素这个单位的。在现实中我们看到一个人,你能说他有多少像素高吗?不...
  • Android长度单位px,in,mm,pt,dp,dip,sp换算公式以及区别 http://www.yourannet.com/android/px-in-mm-pt-dp-dip-sp
  • 关于 字号、PX像素、PT点数、em、CM厘米、MM毫米之间的换算 (2011-04-25 15:09:21)转载▼ 标签: 杂谈 分类: 专业知识 pt (point,磅) 是一个物理长度单位,指的是72分之一英寸。 px (pixel,像素)是一个...
  • mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对...
  • px (pixel,像素)是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。 Windows系统默认是96dpi,MAC...
  • 关于pt和px换算px:说明:相对长度单位。像素(Pixel)。像素是相对于显示器屏幕分辨率而言的。譬如,WONDOWS的用户所使用的分辨率一般是96像素/英寸。而MAC的用户所使用的分辨率一般是72像素/英寸。pt:说明:绝对...
  • Android 中的长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算
  • Android 中的长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算
  • mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip ...
  • px: 即像素,1px代表屏幕上一个物理的像素点; px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同)。 偶尔用到px的情况,...
  • mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用...
  • mm :毫米 pt :磅,1/72 英寸 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip ...
  • 在实际开发过程中有很多人不太理解 dp、sp 和 px 的区别:先介绍一下 dp 和sp。dp 也就是 dip。这个和 sp 基本类似。如果设置表示长度、高度等属性时可以使用 dp 或 sp。但如果设置字体,需要使用 sp。dp 是与密度...
  • mm:millimeter,毫米 pt:point,点 px:pixel,像素 pc:pica,皮卡 dpi:dots per inch,每英寸网点数 ppi:pixels per inch,每英寸像素数 中文字号 英文字号(磅) 毫米 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
热门标签
关键字:

px换算mm