图片的分辨率大于设备分辨率或者小于设备的分辨率的显示问题

来源:互联网 发布:mysql可视化面板 编辑:程序博客网 时间:2024/05/16 06:10

        做程序开发,尤其是手机app开发,经常接触到图片的处理,有时服务器获取的图片大于自己本地要显示的大小(自己限制的),有时要小于,但是设备怎么显示我一直有个疑问,那就是如果图片的分辨率大于设备的分辨率而且还要满屏显示的话的问题。

         今天在网上找了下相关的知识总结下:


显示器的分辨率是指显示器的屏幕的像素组成的数量(指液晶显示器),如21.5英寸的显示器的分辨率是1920X1080是指屏幕上横向有1920个像素,纵向上有1080个像素。


图像分辨率是一幅图片中像素的组成数量,如1024X768的图片,有1280X1024的图片,也有非常大的如2560X1600分辨率的图片等。

当图像的分辨率大于显示器的分辨率时有两种显示方法,一种是局部显示,即屏幕的像素有多少就显示多少像素,这时只能看到图片的某一部分,可以上下左右的移动来看完整的内容。另一种方法是在屏幕内显示完整的图像,这时图片的像素会被压缩,如2560X1600的图片会删去一部分像素,以1920X1080的分辨率(显示屏的分辨率)来显示。这时可以看到完整的图片内容,不过在细节上是丢失一小部分像素的,如用数码相机的屏幕也可以看到完整的照片,不过感觉很模糊,放在电脑上看就好多了,因为屏幕的分辨率低。

当图像的分辨率小于显示器的分辨率时也有两种显示方法,一种是显示实际大小,即图片的分辨率是多少,就用屏幕上的多少个像素来显示,这时屏幕是以点对点的方式来显示图片,不过图片不是全屏,只在屏幕中央的一部分。另一种方法也是全屏显示,这时图片不是被压缩像素,而是被人为的插入了很多像素,图片看起来很大,满屏显示,不过有效像素很少,比如说可以把一个很小的图标文件放完屏来观看,不过画面惨不忍睹。


而对于小于或大于设备分辨率的图片的补充像素或者删除像素是要取决于显示器内部有一颗重要的集成电路叫Scaler IC


Scaler IC是专门用来处理当图像分辨率与显示器分辨率不同时的显示方式的。为便于理解,以具体例子来做说明。如果图像分辨率小于显示器分辨率,如果仍以1:1显示,即一个像素对应一个像素,那屏幕就不会满屏。比如显卡输入640x480,而显示器为1280x1024,就会看到显示器左上角640x480的区块有清晰的图像,而其它剩余区域都是黑色的。为了实现满屏,就要实现图像的缩放(Scaling),做法就是要给画面补足像素,水平方向640个像素须补足到1280个像素,垂直方向480个像素要补足到1024个像素,插入像素的插值算法取决于Scaler IC。

题外话:在了解的过程中貌似高分辨率的图片对屏幕的刷新率有要求,难道一般的刷新频率还满足不了高分辨率的图片吗,这个不太了解,我个人觉得应该是高分辨率的图片像素点很多,导致设备在每次计算到刷新屏幕的过程中时间过长,导致一般的刷新频率满足不了他,会产生闪屏或卡顿的想象。



android开发过程中的题外话:

在做app开发的过程中,首先考虑到手机设备的手机电量,流量,cpu以及其他的因素考虑所以app就是一个展示的作用,从以前配置很低的功能机到刚出来不久的智能机时代,所有的app的效果方面都是很一般的,没有华丽的效果,只有简单的功能实现,因为那时的配置还很低,对于这些额外的处理很开销资源的。但是随着配置的提高,现在的app的效果是一个个的很绚丽,所以资源消耗自然也比较多,我们的手机电量也很快就没了。对于那些Im的app微信,QQ,钉钉等Socket长连接的是一直在后台持续消耗你的资源的,对于直播类的app映客,斗鱼,视频播放类的app都是持续与网络交互的都是很耗资源以及电量的,尤其是那些拿手机浏览器看视频软解码的app,性能好点的还可以,差点的简直是冬天的暖宝宝。

对于app的性能方面,(仅限于图片处理),比如你有一个list要展示图片列表,但是你的图片是有固定大小的,但是每个手机你需要不同分辨率的图片,但是接口就一个,所以就有了动态获取服务器图片资源的方法,比如我可以1.jpg@w320h240我要获取1.jpg这张图片,分辨率就是320*240的,你到一个低分辨的手机上你可以1.jpg@w160h120你可以获取160*120的图片资源,这样的操作,服务器到客户端之间的图片传输你可以实现流量最优化处理,设备显示上你可以在图片不失真,本地不做额外的压缩与计算处理,小小的操作,对于服务器的负担,中间的流量,客户端的资源消耗做到最少,也便于后期维护。

当你要点击下载原分辨率的图片的时候,你可以开启线程异步下载完图片,就可以根据用户要求怎么显示图片了,当图片小于设备时,原图片显示,大于设备时,压缩后显示。

完全高清显示原图片时,可以图片原分辨率显示,以拖动的形式查看显示图片。

1 0
原创粉丝点击