前言

JPG与PNG的区别

一、JPG是什么?

jpg全名是JPEG [Joint Photo graphic Experts Group ] 。JPEG图片以 24 位颜色存储单个位图。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。

1.功能

可以提高或降低JPEG文件压缩的级别。但是,文件大小是以牺牲图像质量为代价的。压缩比率可以高达 100:1。(JPEG 格式可在 10:1 到 20:1 的比率下轻松地压缩文件,而图片质量不会下降。)JPEG压缩可以很好地处理写实摄影作品。但是,对于颜色较少、对比级别强烈、实心边框或纯色区域大的较简单的作品,JPEG压缩无法提供理想的结果。有时,压缩比率会低到 5:1,严重损失了图片完整性。这一损失产生的原因是,JPEG压缩方案可以很好地压缩类似的色调,但是 JPEG 压缩方案不能很好地处理亮度的强烈差异或处理纯色区域。

2.优缺点

优点
摄影作品或写实作品支持高级压缩。利用可变的压缩比可以控制文件大小。支持交错(对于渐近式 JPEG 文件)。广泛支持Internet标准。由于体积小,jpg在万维网中被用来储存和传输照片的格式。
缺点:
有损耗压缩会使原始图片数据质量下降。当编辑和重新保存 JPEG 文件时,JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。

3.使用范围

jpg格式是一种图片格式,是一种比较常见的图画格式,如果你的图片是其他格式,可以通过以下方法转化:
1、photoshop,打开图画以后,按另存为,下面格式那里选择JPG格式就是了,这个方法比较简单,而且适合画质比较好的,要求比较高的图片转换。
2、如果你要求不高,你直接通过windows附带的图画程序,选择JPG格式就可以,这种转换方式画质不高
如果JPG格式转其他格式,这样的方法同样适用。

4.压缩模式

JPEG (Joint Photographic Experts GROUP)是由国际标准组织(ISO:International Standardization Organization)和国际电话电报咨询委员会(CCITT:Consultation Commitee of the International Telephone and Telegraph)为静态图像所建立的第一个国际数字图像压缩标准,也是至今一直在使用的、应用最广的图像压缩标准。JPEG由于可以提供有损压缩,因此压缩比可以达到其他传统压缩算法无法比拟的程度。

JPEG的压缩模式有以下几种:

  • 顺序式编码(Sequential Encoding)
    一次将图像由左到右、由上到下顺序处理。

  • 递增式编码(Progressive Encoding)
    当图像传输的时间较长时,可将图像分数次处理,以从模糊到清晰的方式来传送图像(效果类似GIF在网络上的传输)。

  • 无失真编码(Lossless Encoding)

  • 阶梯式编码(Hierarchical Encoding)

图像以数种分辨率来压缩,其目的是为了让具有高分辨率的图像也可以在较低分辨率的设备上显示。

5.压缩步骤

由于JPEG的无损压缩方式并不比其他的压缩方法更优秀,因此我们着重来看它的有损压缩。以一幅24位彩色图像为例,JPEG的压缩步骤分为:

1.颜色转换

由于JPEG只支持YUV颜色模式的数据结构,而不支持RGB图像数据结构,所以在将彩色图像进行压缩之前,必须先对颜色模式进行数据转换。各个值的转换可以通过下面的转换公式计算得出:

Y=0.299R+0.587G+0.114B
U=-0.169R-0.3313G+0.5B
V=0.5R-0.4187G-0.0813B
其中,Y表示亮度,U和V表示颜色。
转换完成之后还需要进行数据采样。一般采用的采样比例是4:1:1或4:2:2。由于在执行了此项工作之后,每两行数据只保留一行,因此,采样后图像数据量将压缩为原来的一半。

2.DCT变换

DCT(Discrete Cosine Transform)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。
首先将图像划分为多个8*8的矩阵。然后对每一个矩阵作DCT变换(变换公式此略)。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。

3.量化

由于在后面编码过程中使用的码本都是整数,因此需要对变换后的频率系数进行量化,将之转换为整数。
由于进行数据量化后,矩阵中的数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。
在这一过程中,质量因子的选取至为重要。值选得过大,可以大幅度提高压缩比,但是图像质量就比较差;反之,质量因子越小(最小为1),图像重建质量越好,但是压缩比越低。对此,ISO已经制定了一组供JPEG代码实现者使用的标准量化值。

4.编码

从前面过程我们可以看到,颜色转换完成到编码之前,图像并没有得到进一步的压缩,DCT变换和量化可以说是为编码阶段做准备。
编码采用两种机制:一是0值的行程长度编码;二是熵编码(Entropy Coding)。
在JPEG中,采用曲徊序列,即以矩阵对角线的法线方向作"之"字排列矩阵中的元素。这样做的优点是使得靠近矩阵左上角、值比较大的元素排列在行程的前面,而行程的后面所排列的矩阵元素基本上为0值。行程长度编码是非常简单和常用的编码方式,在此不再赘述。
编码实际上是一种基于统计特性的编码方法。在JPEG中允许采用HUFFMAN编码或者算术编码。

二、PNG是什么?

PNG,图像文件存储格式,其目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。可移植网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的"PNG’s Not GIF",是一种位图文件(bitmap file)存储格式,读成"ping"。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序中,或网页或S60程序中是因为它压缩比高,生成文件容量小。

1.文件结构

PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。

2.文件署名域

8字节的PNG文件署名域用来识别该文件是不是PNG文件。该域的值是:

十进制数137 80 78 71 13 10 26 10
十六进制数 89 50 4e 47 0d 0a 1a 0a

3.折叠数据块类型码命名约定

  • 辅助位:

第一个字节的第5位是0(大写)=关键,1(小写)=辅助。一个解码器遇到一个不能识别的块时,如果发现辅助位为1则可以放心地忽略该块,并继续显示图像。

  • 私人位:

第二个字节的第5位是0(大写)=公用,1(小写)=私人。应用程序也可以定义私有(未注册)块来达到自己的目的。需要注意的是解码器并不需要理会块的私人位–因为它没有功能上的意义,它只是一个管理上的便利,以确保公共块和私人块名称不会冲突。

  • 保留位:

第三个字节的第5位必须为0(大写)。该位的意义是为将来可能的扩展保留。

  • 安全拷贝位:

第4个字节的第5位是0(大写)=复制不安全,1(小写)=复制安全。

该位为0(大写),表示该块的内容随图像数据的更新而更新,如果修改了任何关键数据块(包括增添、修改、删除以及关键块的重新排序),就不要把不能识别且"复制不安全"的块输出到新的png文件中。(如果png编辑器可以识别该块,那么当然可以选择输出适当修改后的版本)

该位为1(小写),表示不论png编辑器是否可以识别该块,也不管png文件被多大程度地修改,该块都可以被拷贝到修改后的png文件中。

如果只有辅助块的增添、删除、修改或辅助块的重新排序,png编辑器将总是被允许将不能识别的辅助块拷贝到修改后的png文件中,这就要求:不论"安全拷贝位"如何设置,一个辅助块都不能仅随其它辅助块的更新而更新。(即,如果在png中加入自定义的辅助块,必须做到当仅更新其他辅助块中的数据时,该辅助块不需要连带更新,否则上述机制就会破坏该辅助块与其余图像数据的一致性)
如果png编辑器遇到一个不能识别的关键块,因为没有办法确定修改包含这种块的文件后png文件还是否有效,所以png编辑器应立刻停止修改这个png文件。(简单地删除这个块的做法不够好,因为这个块还可能与解码其他块有关)
复制安全/不安全的机制是为辅助块设计的。对于关键块,"安全拷贝位"应该总是为0。(译者注:即png格式约定关键块的内容总随图像数据的更新而更新)
关于安全拷贝位的原文:
If a chunk’s safe-to-copy bit is 1, the chunk may be copied to a modified PNG datastream whether or not the PNG editor recognizes the chunk type, and regardless of the extent of the datastream modifications.

If a chunk’s safe-to-copy bit is 0, it indicates that the chunk depends on the image data. If the program has madeany changes to critical chunks, including addition, modification, deletion, or reordering of critical chunks, then unrecognized unsafe chunks shallnot be copied to the output PNG datastream. (Of course, if the program does recognize the chunk,it can choose to output an appropriately modified version.)

A PNG editor is always allowed to copy all unrecognized ancillary chunks if it has only added, deleted, modified, or reordered ancillary chunks. This implies that it is not permissible for ancillary chunks to depend on other ancillary chunks.

PNG editors shall terminate on encountering an unrecognized critical chunk type, because there is no way to be certain that avalid datastream will result from modifying a datastream containing such a chunk. (Simply discarding the chunk is not good enough, because it might have unknown implications for the interpretation of other chunks.) The safe/unsafe mechanism is intended for use with ancillary chunks. The safe-to-copy bit will always be 0 for critical chunks.

三、二者的区别

区别:

JPG图片格式有损耗压缩会使原始图片数据质量下降。当编辑和重新保存 (JPG)JPEG 文件时,(JPG)JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。(JPG)JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
PNG图片格式用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序中,或网页或S60程序中是因为它压缩比高,生成文件容量小,无损压缩。

显著区别如下图所示:


总结

例如:以上就是JPG与PNG区别的内容,感谢观看,小白一枚,欢迎批评指正。以上内容多数是360百科的说明 ,下面附上链接,如果有兴趣可以去原网站研究。
JPG360百科
PNG360百科

JPG与PNG的区别——PDF转格式遇到的问题相关推荐

  1. 如何以 PDF/X 格式保存报表

    PDF/X格式是专为数据交换而设计,并且可以被打印.这个想法其实是为了创建一个可以在任何打印机上打印相同的文档.对于印刷业来说,能在任何打印设备上(无论是打印机还是绘图仪)均匀地打印文档是很重要的. ...

  2. latex .ps转换pdf的时候option里嵌入字体与否有何区别 | 附IEEE PDF eXpress 格式审查失败解决办法

    latex .ps转换pdf的时候会在下面对话框的option里加入一行命令,避免IEEE PDF eXpress 格式审查失败的现象: -dNOPAUSE -dBATCH -dEPSCrop -q ...

  3. 如何将ipynb转换为html,md,pdf等格式

    jupyter notebook是一个非常棒的工具,关于jupyter的入门教程请参考我之前写的两篇博客: Jupyter notebook入门教程(上) Jupyter notebook入门教程(下 ...

  4. 可以把JPG图片转成PDF的格式转换器

    虽然网络上JPG转PDF转换器数量很多,但是从稳定和性能上看,并不是所有的软件都能拥有较好的转化功能.事实上很多用户搜索网上的JPG转PDF教程,都没有真正解决JPG转换问题.JPG转换器选择哪款好? ...

  5. CAD手机看图软件中怎么将CAD图纸转为PDF/图片格式?

    在使用CAD手机看图软件查看CAD图纸的时候,偶尔会遇到需要将CAD图纸转为PDF/图片格式的情况,这个时候该如何进行操作呢?下面给大家介绍一下在CAD手机看图软件浩辰CAD看图王中是如何进行操作的吧 ...

  6. heic格式怎么转换jpg/png/pdf等格式?

    目录 HEIC格式是什么? 为什么要用HEIC? HEIC怎么打开? HEIC怎么转换JPG等格式? HEIC格式是什么? 这些年图像格式发生了不少的变化,新的图片格式是层出不穷.手机端最出名的恐怕就 ...

  7. (沂水县地图)行政区划交通图高清矢量cdr|pdf|ai格式(详细2021年)

    (沂水县地图)行政区划交通图高清矢量cdr|pdf|ai格式(详细2021年).pdf格式可以导入cdr软件ai软件另保存cdr,ai格式,可以编辑内容文字,矢量高清图,尺寸高1.2米宽1米.可以无限 ...

  8. QT5 界面截图保存到本地+输出PDF/WORD格式文档+QT界面中文乱码及输出PDF中文乱码的解决(亲身实践并且成功)

    最近做了一个和QT5有关的项目,遇到很多问题也学习到不少,特意写下来希望帮到更多的人.(我的版本VS2017+QT5.12.0) 一.QT5截图并保存到本地 在头文件添加必须项 #include &l ...

  9. 免费的pdf图片格式转换器

    免费的pdf图片格式转换器 有的时候我们更喜欢在一些资源丰富的平台上下载文档,如中国期刊网.豆丁网.豆瓣网等等,在豆丁网上下载了一些文档,软件保存出来是PDF格式的,但是我想把这些PDF文档转换成可编 ...

最新文章

  1. 如何将一键还原精灵备份文件复制出来?
  2. java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题
  3. testng提供的Assert类断言使用
  4. Vue + Element UI——监听DOM元素高度和宽度解决方案整理(八种方法)
  5. nginx学习(一):基本安装
  6. 自建lol服务器,终于干正事了?英雄联盟宣布:艾欧尼亚服务器将进行扩容
  7. WebService究竟是什么?
  8. 【C语言】实现对一个8 bit数据(unsigned char类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。
  9. Git(3):git clone远程GitHub仓库代码出现“Permission Denied (publickey)”问题
  10. 并行化:你的高并发大杀器
  11. Python常用的19个工具包汇总
  12. excel文件修复工具_TunesKit Video Repair下载_视频文件修复工具官方版下载[修复工具]...
  13. 如何提取mp4中的音频?
  14. Effective java学习笔记
  15. 数据结构_树与二叉树总结
  16. 阿里出海遭遇挑战,Lazada三年换三帅仍无法制霸东南亚
  17. (附源码)springboot基于微信小程序的校园外卖系统 毕业设计091024
  18. 接入层、汇聚层、核心层交换机三者之间的功能详解
  19. 【算法】超详细的遗传算法(Genetic Algorithm)解析
  20. 【入门AUTOSAR网络管理测试】RSS-NOS状态转换

热门文章

  1. 在外远程访问禅道,点亮软件测试新技能「内网穿透」
  2. Cadence Allegro导出DXF文件图文教程及视频演示
  3. 猜数字小游戏(人机互动)
  4. CentOS 7 查看和关闭防火墙和端口
  5. 视频转换芯片MS7200概述 HDMI转数字RGB/YUV/HDMI RXReceive/替代IT66021FN
  6. Android 桌面图标右上角显示未读消息数字
  7. Asterisk配置iax服务器
  8. Matlab实现机器学习(附上完整仿真源码)
  9. 淘券通---推荐一款淘宝派券软件
  10. 药品API免费接口开放-APP数据接口