做程序开发,尤其是手机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. android camera 分辨率,Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480)...

    Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480) 在Android中,您需要将Surface设 ...

  2. 如何修改图片分辨率为300dpi?怎么样修改照片的分辨率?

    有时候,自己的照片经过多次上传转换使用后,逐渐变得模糊,那有什么办法可以使照片重新恢复清晰呢?其实可以提高照片分辨率,就可以让照片变得清晰些.今天想给小伙伴们推荐一个在线图片处理网站,借助压缩图的在线 ...

  3. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

  4. CVPR2020 | 即插即用!将双边超分辨率用于语义分割网络,提升图像分辨率的有效策略...

    点击上方"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 本文是收录于CVPR2020的工作,文章利用低分辨率的输入图像通过超分辨率网络生成高分辨 ...

  5. android 相机预览的分辨率,Android开发 Camera2开发_2_预览分辨率或拍照分辨率的计算...

    前言 不管在Camera1或者Camera2在适配不同手机/不同使用场景的情况下都需要计算摄像头里提供的分辨率列表中最合适的那一个分辨率.所以在需要大量机型适配的app,是不建议不经过计算直接自定义分 ...

  6. 电脑调分辨率黑屏了怎么办_电脑调分辨率黑屏了怎么办

    很多网友有这样的疑问"电脑屏幕分辨率怎么调?"也许有朋友说,如此简单的问题还用说吗,接下来是小编为大家收集的,欢迎大家阅读.分辨率又称解析度,一般理解为屏幕显示像素的多少,以102 ...

  7. android+note2+分辨率,Android自适应屏幕方向、大小和分辨率

    屏幕大小 1.不同的layout Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢?其实很简单,只需要在res目录下创建不同的la ...

  8. 照片的分辨率可以改吗?怎么改照片分辨率大小?

    大家现在报名或者注册信息时,会对上传照片有分辨率要求,我们拍摄的照片往往都达不到要求,所以必须通过修改图片分辨率来解决.那么怎么才能修改分辨率(在线修改照片分辨率(DPI) 调整图片DPI 照片dpi ...

  9. shell中大于、等于、小于

    shell中大于.等于.小于 -eq           等于 -ne           不等于 -gt            大于 -lt            小于 -ge           ...

最新文章

  1. AGG第十一课 agg::ellipse 渲染椭圆和多边形
  2. 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
  3. boost::geometry::model::infinite_line用法的测试程序
  4. Oracle创建用户,创建表空间,将空间分配给用户,给用户授权
  5. sklearn自学指南(part56)--朴素贝叶斯
  6. XAML 编码规范 (思考)
  7. PHP ajax跨域问题最佳解决方案
  8. IOS_改变UITextField placeHolder颜色、字体
  9. matlab 动画_MATLAB绘图动画(1)
  10. 来一场蛋白和小分子的风花雪月
  11. arcgis 服务网页打开需要输入用户名和密码问题解决
  12. 通向财务自由之路06_适应大环境的交易策略
  13. ZENG msgbox仿qq提示
  14. JavaScript 代码的加入
  15. 简单好用的Mac设置
  16. AxGlyph矢量绘图软件 | 绘图软件
  17. oracle12C以逗号隔开怎么写,10g之后支持中文逗号作为查询分隔符
  18. 字节跳动 Java 岗一二三面全经过分享
  19. 大数据学习1——大数据概述
  20. 打开苹果电脑浏览器的代码

热门文章

  1. 人民日报大家谈:少儿编程热,需要冷思考
  2. 单工通信、半双工通信和双工通信
  3. win7系统64位安装MATLAB(R2016)
  4. 毕业设计 嵌入式 单片机智能路灯
  5. C# 修改本地以太网ip地址
  6. C语言数字图像处理进阶---9 马赛克滤镜
  7. OpenCV-Python根据鼠标点击位置截取ROI
  8. 【读书分享】精益企业——高效能组织如何规模化创新?
  9. web 页面 常用分辨率(PC 移动端)
  10. android自定义曲线控件,Android自定义折线图(可拖动显示)