GIF、JPEG 和 PNG的区别在哪…
GIF、JPEG 和 PNG
是三种最常见的图片格式。
- GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持
256 种颜色(一般叫 8 bit 彩色),支持单一透明色; - JPEG:1992 年出世,照片一般都用这个格式,有损压缩,24
bit 真彩色(224 = 17 万种颜色),不支持动画,不支持透明色; - PNG:1996 年问世,无损压缩,最常见的使用格式是 256
索引色(PNG-8)和 24 bit 真彩色(PNG-24)(当然 PNG 支持的颜色格式远不止此),支持 full alpha
通道(256 级可调半透明色),不支持动画。
简单比较:
- JPEG v.s. PNG:JPEG
在照片压缩方面拥有巨大的优势,这方面无可替代,但是 JPEG 是有损压缩,图片质量会有损失。另外,一般屏幕截屏用 PNG 格式不但比
JPEG 质量高而且文件大小还更小(维基有图)。 - GIF v.s. PNG:GIF
只在简单动画领域有优势(其实,GIF 256 色限制以及无损压缩机制导致高质量的动画的发布一般都使用 Flash
等格式),只要没有动画,PNG 完全可以取代 GIF。 - 防锯齿:下面是 GIF 和 PNG
防锯齿处理的对比,六张小图片是分别放到浅黄和深绿背景下的情景,三张大图是深绿背景情形的放大。由于 GIF
没有半透明一说,所以防锯齿处理时只能假设背景是白色,这样的 GIF 放在深色背景下还不如不防锯齿。而 PNG
图片可以轻松应付各种背景颜色,特别适合用来做网页和应用程序里的通用防锯齿图标适应不同皮肤,没有 full alpha 通道的 JPEG
和 GIF 都做不到这一点。

可以看到,除了照片和动画,PNG 是最好的格式,但是 PNG
为什么到最近几年才流行起来?有很多原因:
- PNG 诞生的时候互联网已经初具规模,当时 GIF 和 JPEG
已经是很流行的格式了,换格式的迁移成本是很大的,有时候惯性是一个很可怕的东西。 - 浏览器的 PNG 支持比较落后,比如 IE 就是到 IE4
才开始支持 PNG。 - PNG 当初标准里把 alpha 通道写成了 optional
的,土鳖的 IE 一直到 IE7 才开始支持 full alpha 通道。而一般网页图标 256 色足够,所以为了支持 IE6,PNG
相对于 GIF 毫无优势可言,更何况 GIF 还支持动画。 - 尽管从原理上说,同样质量的 PNG 图片文件一般要比 GIF
要小,但是早期很多图片编辑器不支持 PNG,甚至支持的也没有完全利用 PNG 压缩算法里最精妙的部分(最典型的例子就是早期的
Photoshop),保存出来的 PNG 往往巨大无比。现在的软件已经没有这些问题了,但是这个偏见还广泛存在。
GIF、JPEG 和 PNG的区别在哪…的更多相关文章
- [转载]GIF、JPEG 和 PNG的区别在哪里?
原文地址:GIF.JPEG 和 PNG的区别在哪里?作者:苗得雨 GIF.JPEG 和 PNG 是三种最常见的图片格式. GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色( ...
- jpg、jpeg、png... 的区别
对于做设计这一行的人来说,这几个图片格式是最常用的,也是最常见的,几乎每一天都要与他们打交道. 刚刚入门的新人通常不知道在什么地方如何使用他们或者说如何更有效的使用他们. 那他们到底是有什么区别?(一 ...
- Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别
简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565 ...
- 嵌入式开发之davinci--- 8148/8168/8127 中的图像采集格式Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别
简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565 ...
- IPC网络高清摄像机基础知识4(Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别) 【转】
转自:http://blog.csdn.net/times_poem/article/details/51682785 [-] 一 概念介绍 二 两个疑问 三 RAW和JPEG的区别 1 概念说明 3 ...
- jpg/jpeg/png格式的区别与应用场景
注:在存储图像时采用JPG还是PNG主要依据图像上的色彩层次和颜色数量进行选择 一..jpg/jpeg格式的图片(jpg全名:jpeg) JPG(或是JPEG): 优点: (1)占用内存小,网页加载速 ...
- 隐写技巧——利用JPEG文件格式隐藏payload
0x00 前言 继续对图片隐写技巧的学习,这次是对JPEG文件格式的学习和理解.同PNG文件的格式对比,JPEG文件相对简单,读取其中隐藏payload的方式大同小异,两者区别在于文件格式不同,可供利 ...
- PNG,JPEG,BMP,JIF图片格式详解及其对比
原文地址:http://blog.csdn.net/u012611878/article/details/52215985 图片格式详解 不知道大家有没有注意过网页里,手机里,平板里的图片,事实上,图 ...
- 工具软件 PYUV打开raw图片
引自:http://blog.csdn.net/lavenderss/article/details/51495648 [pYUV]如何打开YUV/RGB图片 pYUV工具本身使用起来比较简单,但如果 ...
随机推荐
- HAproxy部署配置
HAproxy部署配置 拓扑图 说明: haproxy服务器IP:172.16.253.200/16 (外网).192.168.29.140/24(内网) 博客服务器组IP:192.168.29.13 ...
- centos 系统常用命令
一:查看cpu信息more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo ...
- appium测试之获取appPackage和appActivity
appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的.那如何快速的获取这APP的这两个参数呢?我这里介绍两个方 ...
- connect by prior 递归算法
http://blog.163.com/xxciof/blog/static/7978132720095193113752/ oracle中 connect by prior 递归算法 Oracle中 ...
- python实战===使用smtp发送邮件的源代码,解决554错误码的问题,更新版!
import smtplib from email.mime.text import MIMEText from email.header import Header import time #密文输 ...
- 已有 JFFs2文件系统的修改
项目应用中,对于前人留下的JFFS2的文件,有时候我们需要修改,但是苦于没有源文件,实际操作很多时候无所适从.每次支持生产之后再进行人为的升级.这样费时费力,也给生产人员增加了负担. 为了解决这个问题 ...
- android 适配器 BaseAdapter 的学习
昨天晚上看了下ArrayAdapter,和SimpleAdapter,今天早上起来看完了球赛,又继续要开始学习了,适配器除了前面的两种,还有一种常用的就是BaseAdapter,他是一个抽象类.事实上 ...
- 前端布局之Flex语法
前端布局一直是CSS的一个重点应用,然而基于盒子模型的传统布局方案,依赖display + position + float 属性,对于某些特殊的布局非常不方便,比如:垂直居中就不容易实现.针对这一情 ...
- Struts2.5的的环境搭建及跑通流程
Struts2.5 struts是开源框架.使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间.如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,st ...
- flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
flannel 是 CoreOS 开发的容器网络解决方案.flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无 ...