`

DPI 在做 RIA时的换算

阅读更多

    DPI  , Dot Per Inch的缩写。每英寸所打印的点数或线数,用来表示打印机打印分辨率。这是衡量打印机打印精度的主要参数之一。一般来说,该值越大,表明打印机的打印精度越高。

 

   DPI实际上就是描述单位英寸上的点数。在做个性化印刷的RIA应用中,可能需要用到DPI。 在flash中的Capabilities类中可以访问到客户端的屏幕DPI设置,但是一般你得到的都是72dpi,不管你怎么设置都没有用。

 

   在做RIA应用时,是怎么遇到遇到的DPI的呢?比如,数据库里需要用物理尺寸来描述一个产品的大小,供网站和生产同时使用,这时数据库里有这么一条记录,有一个图片他是 300mm X 250mm,它需要显示到一个flash的容器里面去,容器的大小是 450pix x 300pix 大小,这时要将这张图片完全等比例填满真个容器。

 

    pic 物理尺寸:

                 width :300mm ;

                 height: 250mm;

    container屏幕尺寸:

                width :450pix;

                height:300pix;

 

 

                var pWH:Number = 300/250;
                var cWH:Number = 450/300;
                if(pWH >= cWH) {
                    pic.width = 450;
                    pic.height = 450/pWH;
                }
                else {
                    pic.height = 300;
                    pic.width = 300*pWH;
                }

 

   这时,图片等比列填满容器时的 尺寸是 360pix X 300pix,而屏幕的DPI是96DPI也就是说,在用户的屏幕上

   1 inch 的长度 = 96pix =》 25.4 mm = 96pix

   所以这时图片的 物理宽度 300mm在屏幕上的长度是 360pix,由此可以计算出此时该图片的 DPI精度为:

   360/300*25.4 = 30.48DPI

   而它原来的DPI是: 25.4DPI

所以说,而一张图片在flash中显示时,它的精度本来就是屏幕的DPI,96,在换算成具体的物理尺寸时也是安屏幕的DPI来算的,比如这张原始大小为 300 X 250 pix的照片,在屏幕96DPI下放到数据库时的物理尺寸应该是

   25.4*300/96 mm

所以总结,一个具体的打印对象在一个已知的 D 的DPI环境中,它的DPI应该算:

    DPI = 实际 width (pix )/ 原始 width (pix) * D;

    物理尺寸 width (mm)= 25.4 /D *实际 width (pix ) ;

    显示尺寸 width(pix) = D / 25.4 * 物理 width (mm)

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics