相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了!

相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了!

先说图片
X×dpi=点数dot
X是图片实际尺寸,简单点,我们只算图片的高吧,比如说拍了张图片144×144 72dpi,那么它的实际高就是144÷72=2吋
dpi是每吋点数,在相机拍出一张图片之后它的dpi就确定了(右键属性摘要里就能看),比如最常见的72dpi,还说上面提到的144×144 72dpi的图片,72dpi的意思是说如果也按照72dpi打印图片的话打印出来还是高2吋(X)的
可是我们经常最到的情况是输入设备dpi和输出设备dpi不一致的情况,比如对这张144×144 72dpi的图片我们以144dpi打印出的图片实际高就是144÷144=1吋(X)

明白了吧?相机拍出来的图片宽高的点数144×144(点数dot和像素数pixel的关系一会儿再说)和dpi(别说分辨率,以免混淆概念),在这里是72dpi是确定的(前提是你别用ps等来改),但这现两个参数的不同在于点数144×144是固定不变的,比如这个相机是144×144=20736(按常用的说法这个相机就是2万像素),按最大能力拍出的照片就是由144×144=20736个点组成的,你没法变了,除非PS,而对于高度或宽度上的144个点,你可以把它们放在2吋(X)里(当以默认72dpi打印时),这时2吋里有144个点;也可以在1吋(X)的长度里平均分配这144个点(当以144dpi打印时),这时1吋里有144个点,当然了,第2种情况打印出来的图片要小一半,但感觉更清晰了。或者可以这样理解,确定的是点数dots,而每个点多大是不确定的可以选的,结果X是不确定的。

上面说的是打印出来的情况,我们平时看到的最多的还是屏幕上看到图片,图片拍完了在相机屏幕上看到,传到电脑里在电脑屏幕上看到,在手机屏幕上看到,在其他屏幕上看到等等,现在来说一说图片实际尺寸和我们在屏幕上看到的尺寸大小的关系。

X×dpi=Y×ppi(Y×ppi=像素数pixel)
即点数dot=像素数pixel
我们以电脑为例
X上面提到过了,是图片实际尺寸(可以变),而Y呢?Y是你在屏幕上看到的图片尺寸,说明白点拿尺子量一量你电脑屏幕上以100%显示的图片高是多少的。就以常见的14吋16:10宽屏液晶显示器为例,长宽是12吋×7.5吋,方便起见我们说它的高是7.5吋的。ppi是每吋像素pixel数,公式中确定的是X×dpi也即Y×ppi=144,我们看到的Y怎么算呢?当然是144÷ppi,那么ppi怎么算呢?如果你用1280×800的分辨率,那么ppi=800÷7.5=107,或1280÷12=107,Y=144÷107=1.35吋=3.4cm,拿你的尺子量一量是不是这样的吧。需要说明的是,在计算过程中要多次用到英制和公制的转换,1吋≈2.5399999896876厘米,经过多次转换再加上显示器实际显示尺寸的不同,可能最终计算结果和实际测量结果会有所出入。
实际上我们平时在屏幕上看图片,比如网页设计,不会去在意它的实际显示尺寸,只要知道它的相对大小就可以了,也就是图片的高相对于屏幕高的比例,因为每个人的屏幕情况都是不一样的,有小的上网本也有超大的屏幕,我们只要计算图片的高度占屏高的比例就行了,Y×ppi=Y×分辨率高÷屏高,(Y×分辨率高÷屏高)/分辨率高=Y/屏高,即图片像素数占分辨率高度上的点数的比例=图片的高度占屏高的比例,例子中就是(144=1.35×800÷7.5)/800=1.35/7.5=0.18,这张144px高的图片占分辨率高800px的0.18,也就是说我们不用算出Y=1.35,只用144÷800就行了。

知道了计算过程我们就可以知道同一张图片在不同电脑不同分辨率不同dpi的情况下所看到的大小不同的原因。首先说这张144×144的图片在14吋显示器1280×800屏幕分辨率条件下它的高占屏高的144/800,在15吋1280×800条件下这一比例仍为144/800,但屏幕大了你看到的图片就大了,在14吋960×600条件下这一比例变为144/600,与14吋1280×800相比看到的图片变大了;而在320×240的QVGA屏幕的手机上,这张图片的高就占了整个屏幕高的144/240,具体与14吋1280×800下的Y=1.35相比是大是小,这还与你手机屏幕的宽度有关,算法与电脑的情况一样。
一张图片的dots=pixels是确定的,这意味着无论你的电脑显示dpi是多少,144×144的图片在14吋1280×800条件下它的高都占屏高的144/800,而电脑dpi与显示分辨率都与打印dpi无关,也就是说无论你的电脑设置pdi多少,分辨率多少,通过这台电脑连接打印机以72dpi打印出来的这张图片高都是2吋;用别的15或12吋的电脑结果还是一样。

上面提到的都是图片,文字不同,图片确定的是dots=pixels,高度上有144个dots,而文字一般确定的是实际大小,即磅值(1磅=1/72吋),比如word里输入常用的五号宋体字磅值是10.5磅,不论你的电脑显示dpi是多少,分辨率是多少,连接的打印机打印dpi是多少,打印出来的字高都是10.5磅,也就是说,对于确定pt(point磅值)的文字,它的实际大小也就确定了。前面提到的实际大小X= pt×1/72,所以确定了pt也就确定了X,不同打印dpi的影响只是组成文字的点的不同,以72dpi打印出来的宋体五号字在10.5磅的高度上是由10.5磅×1/72×72dpi=10.5个点组成的;而以96dpi打印出来的宋体五号字在10.5磅的高度上是由10.5磅×1/72×96dpi=14个点组成的(这样的汉字看不清楚,汉字至少需要16×16点阵组成才能分辨清楚)。
下面说说屏幕上显示文字的大小问题,我们再来看公式
X×dpi=Y×ppi
Y×ppi=Y×分辨率高÷屏高=px(pixel)
于是有pt×1/72×dpi= Y×分辨率高÷屏高=px,回顾前面图片的情况,图片px是确定的,因此同一张图片在不同分辨率和不同尺寸的屏幕上的显示问题实际上是在px为定值,”分辨率高”和”屏高”为变动值的条件下图高px/分辨率高px的比例问题;而对于文字来说,磅值pt是确定的,因此同样的宋体五号10.5pt的字在不同分辨率和不同尺寸的屏幕上的显示问题实际上是在pt为定值,”显示dpi”、”分辨率高”和”屏高”为变动值的条件下字高px/分辨率高px的比例问题,变动情况与图片类似。因此我们可以知道,调高显示dpi会使文字变大,调低分辨率也会使文字变大,当然你换了更大的显示器字也就更大了。

不过,在网页设计中我们一般都规定了文字的px,也就是说pt×1/72×dpi=px为定值,pt根据个人电脑的dpi自动调整,这样做的目的是为保证在不同dpi的电脑中文字的显示比例一样。这就与前面图片的情况一样了。

上一篇:我与《Java开发手册》


下一篇:2.移植3.4内核-使内核支持烧写yaffs2