JPG与PNG的区别——PDF转格式遇到的问题

news/2024/11/14 12:07:10/

前言

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图片格式的区别


总结

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


http://www.ppmy.cn/news/707143.html

相关文章

JPEG、GIF、PNG、BMP哪种图片格式的图片清晰一点

BMP格式的图片是无损保存,质量最好。 JPEG:是有损压缩 ,文件后辍名为".jpg"或".jpeg"。 GIF :是用于压缩具有单调颜色和清晰细节的图像(如线状图、徽标或带文字的插图&am…

PNG文件格式总结

整理自文档: http://blog.csdn.net/yongzhewuwei_2008/article/details/1007130 http://blog.csdn.net/flyingghost/article/details/251110 http://www.cnblogs.com/xiaoxiaoboke/archive/2012/02/13/2349765.html PNG文件是以大端模式存放的,所以读取P…

PDB文件格式总结

PDB文件格式总结 pdb格式文件中对结构有充分的介绍。包括结构所得日期, 文献, 解析方式, 序列信息, 残基缺失情况, 原子坐标等等, 我们可 以先用记事本或者写字板打开 PDB文件中的记录类型 标题部分 HEADER:分子类, 公布日期, ID号OBSLTE:注明此ID号…

Java利用mpxj解析mpp格式文件

转载请注明来源:http://blog.csdn.net/loongshawn/article/details/51038051 《Java利用mpxj解析mpp格式文件》《SpringBoot添加Email发送功能》《SpringBoot配置log4j输出日志》《SpringBoot定时任务说明》《SpringBoot接口服务处理Whitelabel Error Page》《构建…

【玩转Linux操作】详细讲解Shell的函数,exit,文件重定向,引入外部脚本的操作

🎊专栏【​​​​​​​玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 文章目录 🍔函数…

JPG文件格式分析

转自:http://blog.csdn.net/bluesky_sunshine/article/details/6182682 参考:http://wenku.baidu.com/view/17fd3631b90d6c85ec3ac6e8.html,http://baike.baidu.com/view/218.htm JPEG格式 格式:JFIF(JPEG档的交换格式) 压缩&am…

Xamarin指南针

1、MainActivity.cs文件 在OnCreate添加 Xamarin.Essentials.Platform.Init(this, bundle); 添加方法 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults){Xamarin.E…

手机罗盘(指南针)校准方法

百度查了一下,有两种方法;第一是在床上铺上被子,使劲扔手机,让其在空中翻腾3周半以上,转体720左右;第二是把手机水平放在一边,坐等其校准好。经过本人实测,第一种折腾老半天&#xf…