精华内容
下载资源
问答
  • 原文:WPF中三种方法得到当前屏幕的宽和高WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120...
    原文:WPF中三种方法得到当前屏幕的宽和高

    WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素

    一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有:

    1.这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位,在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时WPF单位对应一个像素,而当DPI非96的情况下,用该分辨率来做定位就会发现误差了,因此此时每个WPF单位并不是对应于一个像素

    System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
    System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height

    2.这两个方法可以返回当前屏幕的宽和高,它是与设备无关的单位(1/96英寸),因此用它来做控件的定位,在DPI改变的情况下,也不会发生定位上的误差

    SystemParameters.PrimaryScreenWidth
    SystemParameters.PrimaryScreenHeight

    3.这两个方法可以返回当前屏幕工作区的宽和高(除去任务栏),它也是与设备无关的单位,通常我们可以结合2和3来得到任务栏的高度

    SystemParameters.WorkArea.Size.Width
    SystemParameters.WorkArea.Size.Height
    posted on 2018-09-05 00:10 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9589370.html

    展开全文
  • Retina屏上是没有问题的:1像素刚好对应的就是我们编程中的1个point,但在Retina 一个point则被映射成了2个像素,而在storyboard中设置约束或者frame的时候你是 没法设置小于1的值的,也即系统默认最小单位是1.该...

            注意,本文的解决方案假定你:

            a.使用storyboard或者xib;

            b.使用autolayout自动布局;

            c.使用swift而非Objective-C语言。


            在进行产品开发的时候,我们经常遇到UI设计师给出1像素宽的间隔线。而这

    种1像素宽的线,通常我们可以拖上一个view,将其宽或者高度设置为1。这在非

    Retina屏上是没有问题的:1像素刚好对应的就是我们编程中的1个point,但在Retina

    一个point则被映射成了2个像素,而在storyboard中设置约束或者frame的时候你是

    没法设置小于1的值的,也即系统默认最小单位是1.该怎么办呢?

            目前我想到了这样的一个方法:使用autolayout的情况下,在storyboard中,

    们按照一个点位(Point)布局我们的间隔线,这里我们用一个普通UIView将其宽度

    或者高度约束设置为1(如果是横线设定高为1;如果竖线则定宽为1)。然后我们将

    这个view的类名修改为我们定制的类名:SA01BorderLineView(继承自UIView)。

    然后在这个类的重载方法layoutSubviews中,遍历其约束,找到定宽或者定高的约

    束,根据屏幕是否是Retina屏来动态的修改约束的高度或者宽度值。

            在下面的示例代码中,我们将通过对比普通view来看是否我们达到了预期效果:

            首先定制一个SA01BorderLineView,直接继承自UIView,重载UIView的layoutSubviews

    方法,遍历其约束,查找到定宽或者定高的约束(根据当前是横线还是竖线)。代

    码如下:

    @IBDesignable class SA01BorderLineView: UIView {
    
        @IBInspectable var isHorizontal: Bool = false
    
        override func layoutSubviews() {
            super.layoutSubviews()
            let layoutAttribute = self.isHorizontal ? NSLayoutAttribute.Height : NSLayoutAttribute.Width
            for item in self.constraints() {
                let constraint = item as NSLayoutConstraint
                if constraint.firstItem as UIView == self && constraint.firstAttribute == layoutAttribute {
                    self.removeConstraint(constraint)
                    constraint.constant = 1 / UIScreen.mainScreen().scale
                    self.addConstraint(constraint)
                }
            }
        }
    
    }
    

            注意代码中使用到了@IBInspectable和@IBDesignable,这两个关键字是swift

    新引入的,用于定制的view等视图空间在xib或者storyboard中实现可视化定制新增

    变量和实时渲染的功能。这里主要是因为我们引入了一个判断是否是横线的新增变量

    :isHorizontal,想再storyboard中使用这个view的时候就能在storyboard中直接修改

    它的值。截屏如下:


    使用了IBInspectable关键字之后,能够在storyboard中直接修改相关属性值(方法1:通过runtime设置)



    使用了IBInspectable关键字之后,能够在storyboard中直接修改相关属性值(方法2:通过类属性表设置)


    运行效果图:



    示例代码github地址:https://github.com/lihux/iLihuxDailyAccumulates,该仓库包含

    两个工程,源码在swift工程的accumulates->A001文件夹下。

    展开全文
  • OPENGL_单位长度对应屏幕像素 ...gluPerspective(GLdouble fovy,GLdouble ...fovy:视角,指定视景体的视野的角度,以度数为单位,y轴的上下方向(x轴的视角可以由y轴视角视景体的宽高比计算出) a...

    OPENGL_单位长度对应屏幕像素




    gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar)

    fovy:视角,指定视景体的视野的角度,以度数为单位,y轴的上下方向(x轴的视角可以由y轴视角和视景体的宽高比计算出)

    aspect:视景体的宽高比(窗口的纵横比,即x/y)

    zNear:指定观察者到视景体的最近的裁剪面的距离(必须为正数)

    zFar:指定观察者到视景体的最远的裁剪面的距离(必须为正数)


    在初始化OpenGL时,需要使用gluPerspective设定视景体,视景体的参数,屏幕的分辨率共同决定了,OpenGL中1个单位(一般为1米)对应屏幕多少像素

    计算方法

    以gluPerspective(45,w/h,0.1,1000),屏幕分辨率1024*768为例

    0.0414 少写一个0

    计算屏幕近景裁剪面的高 h = 2*tan(22.5)*0.1=0.082842

    0.0828米对应 768像素

    那么1米就对应 768/0.0828 = 9275像素(图像在z位置为0的情况)

    如果z不为0

    0.0414 少写一个0


    h = 2*tan(22.5)*0.15 = 0.12426米

    那么1米就对应 768/0.12426 = 6180像素


    所以

    so 1米单位长度与像素的换算关系为

    1米 = 屏幕分辨率的高/裁剪面的高 = 768/ (2*tan(22.5)*(ZNear+z))

    其中ZNear是图中的0.1

    z是0.15-0.1=0.05

    posted @ 2014-09-21 00:02 00000000O 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 屏幕密度DPI的对应关系

    千次阅读 2015-11-08 15:49:54
    屏幕密度DPI的对应关系基本概念铺垫像素像素(pixel)为图像基本单位,是一个抽象采样,在很多情况下,它们采用点或者方块显示。每个像素可有各自颜色值,可以采用RGB表示。单位面积内的像素越多代表分辨率...

    屏幕密度和DPI的对应关系

    基本概念铺垫

    像素

    像素(pixel)为图像的基本单位,是一个抽象的采样,在很多情况下,它们采用点或者方块显示。每个像素可有各自的颜色值,可以采用RGB表示。单位面积内的像素越多代表分辨率越高,所显示的图像就会接近于真实物体。

    屏幕尺寸

    屏幕尺寸(Screen size)指屏幕的物理尺寸,一般用屏幕对角线长度表示,单位英寸(1英寸 = 2.54 厘米)。如小米4是5英寸。

    宽高比率

    宽高比率(Aspect Ratio)指的是实际屏幕的物理尺寸宽高比,如16:9,4:3等等。

    屏幕密度

    屏幕密度(Screen density)指的是屏幕里像素值浓度,分辨率/屏幕尺寸可以反映出手机密度。为了方便,Android将屏幕密度分为6种,low, medium, high, extra-high, extra-extra-high, and extra-extra-extra-high.

    分辨率

    分辨率(Resolution)和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数。如1920*1080,它表示纵向一列有1920个像素,横向一行有1080个像素。

    DPI

    DPI(dot per inch),每英寸像素数,可以反映屏幕的清晰度,可用于缩放UI。例如,如果一个320×240分辨率的屏幕之物理尺寸为2 inch×1.5 inch,那么DPI = 320/2 = 240/1.5 =160。一般的,计算的方法为对角线像素值/对角线长度(屏幕尺寸)。如计算WVGA(800*480)分辨率,3.7英寸的密度DPI为sqrt(800^2 + 480^2)÷3.7 = 252

    dip(dp)

    DIP = Density-independent pixel,与密度无关像素,亦称为设备独立像素(Device independent pixel),是一个虚拟的像素的单元,其等价于160dpi屏幕的一个实际物理像素。这种160dpi的屏幕的屏幕密度是系统假设一个基准密度(也就是medium级别的密度),在运行时,系统会将DP值根据不同DPI的屏幕转化具体的物理的像素。公式为px = dp * (dpi / 160)。如一个240dpi的屏幕,1dp在其上实际等于1.5个物理像素px。在布局时应该使用dp作为单位以方便适配

    Android对手机屏幕尺寸和dpi分级的情况

    screen_classify

    具体的数据(适配常用,重点关注)

    • ldpi (low) ~120dpi
    • mdpi (medium) ~160dpi
    • hdpi (high) ~240dpi
    • xhdpi (extra-high) ~320dpi
    • xxhdpi (extra-extra-high) ~480dpi
    • xxxhdpi (extra-extra-extra-high) ~640dpi
    展开全文
  • 不做处理的情况下,一个375px 667px的矩形(iphone5大小)在不同设备的显示。 1、PC端,很大,就像一个真正...iphone5的320x568是它自己的视口大小,分辨率,屏幕尺寸,对应的CSS的px一点数值上的关系都没有! ...
  • 1》现在公司有个悬浮移动的按钮,就像ios那个悬浮的按钮样式,按钮上面要显示一个text文本,这就涉及到几个问题  1.按钮本身对于不同手机的按钮的...//这是获取手机分辨率的宽高获取像素点 int allwidth = SysApp.ge
  • CSS 像素图制作攻略

    2021-01-19 18:40:32
    (觉得最好是使用连字符这样对于10以上数字,可以直接看出来宽和高的数值,我这个就不优化了 :P) 2.使用相对定位给个基点,然后使用绝对定位top和left来控制数值,直接对应rNcN,方便快捷的对应起来。比如: ...
  • 04_OpenCv像素取反

    2018-10-04 23:01:58
    2.通过Mat对象的cols()方法rows()方法,获取图片的宽高 3.获取图片的通道数 4.分配一个字节数组,其长度为图片的通道数 5.循环遍历Mat对象的对应行列上的像素信息 6.取出对应行列上的像素信息,赋给字节数组 7....
  • 比如一张100 * 100像素大小图片,分别放在上述各个文件夹中,然后将其设置为ImageView(假设宽高都是wrap_content)图片,那么这个ImageView大小是多少呢,或者说图片大小是多少呢?本文主要
  • 2.iPhone44S,宽高像素点变成是640*960,但是从程序角度依然是320*480(这是因为苹果的retina显示屏的原因,在retina中,一个程序像素对应的是可见像素的两倍)屏幕尺寸3.5寸,屏幕比例4:3 3.iPhone55S,宽高像素...
  • 这是我用Matlab 的HDL Coder工具,然后结合Altera的CycloneII芯片FPGA视频图像开发平台...width,height分别是图像的宽和高;pixelout是输入像素对应的均衡化因子,用它*255/(width*height)就是均衡化后的像素值;
  • 一、Qt Creator 安装hello world 程序编写(原创) 1.首先到Qt 官方网站上下载Qt Creator,这里我们下载windows 版。 下载地址:http://qt.nokia.com/downloads 如下图我们下载:Download Qt SDK for ...
  • WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每...一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有:  1. System.Windows.Forms.Scre...
  •    首先,QVGA(Quarter VGA)显示级别是PPC最常用分辨率之一,其分辨率为320×240像素宽高比为5:4.早期PPC如多普达696等热销机型都采用这一显示级别屏幕。    接下来是HVGA...
  • PyAutoGUI模块通过屏幕xy坐标系统确定目标位置,控制鼠标键盘发送虚拟击键鼠标点击,完成点击按钮、填写表单等操作,在没有模块对应你要操作无聊任务时候,...pyautogui.size() #返回屏幕宽高像素元组 ..
  • 前端开发常用单位

    2021-03-18 12:31:15
    前端开发常用单位像素(px)特点:百分百(%)特点:例子:宽和高paddingmarginem特点rem特点vh(Viewport Width)&...子元素的宽高分别有父元素的对应的宽和高决定 子元素的margin和padding设置百分比计算依据是
  • 图像的像素值为[0-255],表示的是其对应的颜色强度值,0表示最弱(理解为黑色),255表示最强(理解为白色)。 所以我们知道图像的基本参数就是、通道数,像素值,以及通道的排序。 opencv, matplotlib, ...
  • WPF单位

    2010-03-15 14:34:00
    WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么...一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有: 1.System.Windows.Forms.Screen.Prima...
  • 第一个像素的YUV值为:Y0 U0 V0 ...图片大小定 义为:w * h,宽高分别为wh 一、YUV420格式 先Y,后V,中间是U。其中Y是w * h,UV是w/2 * (h/2) 如果w = 4,h = 2,则: yyyy yyyy uu vv 内存则是:yyyyyyy...
  • dp:160像素对应的物理尺寸,100个像素的手机,100个像素的大广告电子牌,它们每个像素对应的物理尺寸是 不一样的,所以dp的出现可以让控件布局出现在不同手机屏幕上而不失真。 sp: 字体使用的大小...
  • em,rem,px区别

    2018-12-15 17:17:37
    px是像素,可以设置宽高,字体大小。像素px是相对于显示器屏幕分辨率而言 em(相对长度单位) 浏览器默认字体是16px,1em = 16px ,以此类推计算12px=0.75em,10px=0.625em,2em=32px;这样使用很复杂,很难...
  • 1.首先允许网页自己调整宽高 width:控制 viewport 大小,可以指定一个值,如果 600,或者特殊值,如 device-width 为设备宽度(单位为缩放为 100% 时 CSS 的像素)。 height: width 相对应,指定高度...
  • 这是本人的第一篇个人笔记,忘指正错误。 利用matlab实现最近邻内插实现图像的缩放,利用仿射变换的...对应着图像的宽和高。fw=w0/w1,代表宽度缩放因子,fh=h0/h1代表高度缩放因子。利用dst中的每个像素坐标点后向映
  • gl_FragCoordgl_FragDepth分别是片元着色器的输入输出变量。 gl_FragCoord是个vec4,四个分量...windowWidthwindowHeight都以像素为单位,亦即用glViewPort指定的宽高。w即为乘过了投影矩阵之后点坐标的w,用于p

空空如也

空空如也

1 2 3 4 5 6
收藏数 110
精华内容 44
关键字:

像素对应的宽和高