JPEG 与 PNG的区别

图片有很多格式,比如JPEG,PNG,GIF,TIFF,RAW等,这里主要说一下JPEG和PNG这两种生活中用的比较多的格式。

关于JPEG和PNG的区别:

  • 1.JPEG是有损压缩的,PNG是无损压缩的。
  • 2.JPEG没有透明通道,PNG有透明通道。当把PNG转换成JPEG的时候,会丢失透明度信息。

为什么要图片压缩

首先来说一下为什么要图片压缩

一般可以用RGB或者ARGB来表示一个颜色(A表示透明度)(当然还有其他色彩空间,比如CMYK、HSV等,这里就拿大家最了解的RGB来说)。

如果是用RGB来表示一个像素点的颜色,在存储的时候R、G、B分别用8个bit位来表示(这里说的是RGB_888,当然还有RGB_565等),那么一个像素点的颜色需要用3*8=24个bit为来表示,那么假如说生成一张屏幕那么大的图片(就拿iPhone X来举例,它的显示屏是2436*1125像素),有2436*1125个像素点,也就是需要24*2436*1125=65772000个bit位。

大家都知道,1个字节是8个bit位,即1 Byte = 8 bit,而

1 KB = 210 B = 210 * 8 bit = 8192 bit

1 MB = 210 KB = 220 * 8 bit = 1048576 bit

(此处先撇开不谈硬件厂商为了计算方便,把1024 ≈ 1000,声称有XXGB实际并没有这么大而被消费者诟病。这是业界通用的规则,大家只能接受🙃🙃)

那么这张图片所需要的存储空间就是65772000 / 1048576 ≈ 63 MB

axiba

一张照片这么大还得了!!!!男朋友有几个肾都不够女朋友自拍的!!!

所以,就要对图片进行压缩。

有损压缩 vs 无损压缩

JPEG的压缩过程是有损的,压缩过的文件不能100%还原成原图。

PNG的压缩过程是无损的,压缩过的文件可以准确的还原出原图。

JPEG和PNG各自的压缩算法有————

wobuting

你们以为我会讲压缩算法?😌😌——并不会,因为我看不懂。😂😂

  1. 先来大致说一下JPEG的压缩过程

JPEG的有损压缩算法的时候在压缩的时候,主要是针对人类视觉系统不敏感的部分进行信息的减少。

比如说把物体边界这个像素的颜色,换成相邻的两个像素的杂色,那么边界像素的颜色值就不用再耗费bit位了存储了,这个像素的颜色是可以通过相邻两颜色计算出来的。

  1. 然后再来说一下PNG的压缩,它主要是合并相同/相似的颜色,创建出色调区域。越多颜色相似的像素在一起,它的压缩率就越高。

网上有一种说法是,“多次打开和保存JPEG,会把JPEG变得越来越失真”。

其实,这句话其实说的是,在编辑器里面打开JPEG,每次保存/导出的时候,会让你选择压缩比,一共有0~10这是一个级别的压缩比,一般情况下编辑器默认压缩比是8,因为8可以比较好的平衡存储空间和图片质量。即使采用10这个压缩比,实际上也是压缩了的。所以多次保存的情况下,会越来越失真。😶😶

JPEG vs JPG

JPEG和JPG到底有没有区别?

——没有区别。

至于为什么会有.jpeg.jpg两种扩展名,是因为以前DOS时代,规定扩展名不能超过3个字符,(不过现在windows已经可以支持任意长度的扩展名了),所以把.jpeg改成了.jpg。但Mac系统是支持任意长度的扩展名的,所以Mac里面JPEG格式的图片的扩展名是.jpg


关于JPEG和PNG的区别就先写到这里。

至于平常该选择JPEG还是PNG,我的答案是————无所谓~

  • 现在存储都那么大,而且还有云盘,也不在乎那一点儿存储空间
  • 如果你是专业人士,那么相信你自有评断😝
  • 如果是普通人,而且你在乎图片的失真情况,那么就选用PNG
  • 某些情况下,比如某些网站要你上传的图不能是ps过的,大多数情况下会要你上传JPEG,这就涉及JPEG文件头里面存储的Exif信息。

关于Exif相关内容,会在之后的文章里提及。