当前位置: 首页 > news >正文

图片原理解说(综合版:JPEG,PNG,BMP,GIF)

JPEG:

首先说明 jpeg图片:
JPEG是joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把1.37Mb的BMP位图文件压缩至20.3KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。
  JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在 Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。其中0级压缩比最高,图像品质最差。即使采用细节几乎无损的10 级质量保存时,压缩比也可达 5:1。以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。
  JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。
  JPEG2000作为JPEG的升级版,其压缩率比JPEG高约30%左右,同时支持有损和无损压缩。JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示。此外,JPEG2000还支持所谓的"感兴趣区域" 特性,可以任意指定影像上感兴趣区域的压缩质量,还可以选择指定的部分先解压缩。
  JPEG2000和JPEG相比优势明显,且向下兼容,因此可取代传统的JPEG格式。JPEG2000即可应用于传统的JPEG市场,如扫描仪、数码相机等,又可应用于新兴领域,如网路传输、无线通讯等等。
  优点:
  摄影作品或写实作品支持高级压缩。
  利用可变的压缩比可以控制文件大小。
  支持交错(对于渐近式 JPEG 文件)。
  JPEG 广泛支持 Internet 标准。
  缺点:
  有损耗压缩会使原始图片数据质量下降。
  当您编辑和重新保存 JPEG 文件时,JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。
  JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
你看不出改变 不等于没有改变,人的视力范围里有些色彩的区别是无法分辨的,而把这些图片信息去掉,你看起来没区别,但图片大小已经被压缩了

JPEG格式又可分为标准JPEG、渐进式JPEG及JPEG2000三种格式:
1. 标准JPEG格式:此类型图档在网页下载时只能由上而下依序显示图片,直到图片资料全部下载完毕,才能看到全貌。
2. 渐进式JPEG格式:渐进式JPG为标准JPG的改良格式,可以在网页下载时,先呈现出图片的粗略外观后,再慢慢地呈现出完整的内容(就像GIF格式的交错显示),而且存成渐进式JPG格式的档案比存成标准JPG格式的档案要来得小,所以如果要在网页上使用图片,可以多用这种格式。
3. JPEG2000格式:新一代的影像压缩法,压缩品质更好,并可改善无线传输时,常因讯号不稳造成马赛克及位置错乱的情况,改善传输的品质。此外,以往浏览线上地图时总要花许多时间等待全图下载,JPEG2000格式具有Random Access的特性,可让浏览者先从伺服器下载10%的图档资料,在模糊的全图中找到需要的部分后,再重新下载这部分资料即可,如此一来可以大幅缩短浏览地图的时间。

相关文章:

  • Adventure Works 教程
  • 工具和软件收藏
  • 8_21_2013_Problem D: BUREK_纯模拟
  • 计算机网络方向技能需求
  • linux centos 磁盘分区 逻辑卷
  • .cn根服务器被攻击之后
  • MAC地址验证之本地验证
  • testing
  • [转载]ARP表和FDB表的区别
  • [每日一题] 11gOCP 1z0-052 :2013-08-31   数据库的存储结构.....................................................
  • 2 curses库IO处理--字符属性函数
  • 求两个字符串的不连续的公共字串
  • Javascript时间字符串比较
  • IE关闭时出错解决办法
  • 线程间通信----Handler
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • HTML5新特性总结
  • JavaScript-Array类型
  • Object.assign方法不能实现深复制
  • PHP CLI应用的调试原理
  • React-生命周期杂记
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 三栏布局总结
  • 思否第一天
  • 新版博客前端前瞻
  • 栈实现走出迷宫(C++)
  • 正则与JS中的正则
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 阿里云ACE认证之理解CDN技术
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​Linux·i2c驱动架构​
  • #includecmath
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)linux下的时间函数使用
  • .Net Core和.Net Standard直观理解
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net refrector
  • .net 受管制代码
  • @RequestParam详解
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [145] 二叉树的后序遍历 js
  • [Android]一个简单使用Handler做Timer的例子
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [CERC2017]Cumulative Code
  • [Excel VBA]单元格区域引用方式的小结
  • [iHooya]2023年1月30日作业解析
  • [jQuery]div滚动条回到最底部