图片格式与设计那点事儿(3)
作者:平四 来源:taobaoUED 发布时间:2011-01-06 12:17:00
JPG和PNG
关于JPG和PNG的基本信息介绍这里就不赘述了,有兴趣详细了解的同学可以去这里:
什么是JPG、什么是PNG。另外这里我们也不对GIF进行讨论,是因为PNG就是为取代GIF而生的,而且PNG的压缩算法也要优于GIF,所以只要不是需要动画效果的地方强烈建议都采用PNG格式图片。
这里我们不妨把JPG和PNG的一些特性进行一个简单对比:
格式 | 压缩模式 | 交错支持 | 透明支持 | 动画支持 |
JPG | 有损压缩 | 支持 | 不支持 | 不支持 |
PNG | 无损压缩 | 支持 | 支持 | 不支持 |
JPG的特性
1、支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小。
2、有损压缩会使图像数据质量下降,并且在编辑和重新保存JPG格式图像时,这种下降损失会累积。
3、JPG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
PNG的特性
1、能在保证最不失真的情况下尽可能压缩图像文件的大小。
2、PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
3、对于需要高保真的较复杂的图像,PNG虽然能无损压缩,但图片文件较大,不适合应用在Web页面上。
PNG8与PNG24
提到PNG格式就不得不提到PNG8和PNG24,这种叫法并非官方定义,不过由于普遍使用已经被大家广泛接受了。通过前面的介绍我们知道PNG采用无损压缩是通过索引色去存储和还原图像的,PNG8和PNG24后面的数字则是代表这种PNG格式最多可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而24则代表2的24次方大概有1600多万色。
不仅如此,PNG8还支持1位的布尔透明通道,所谓布尔透明指的是要么完全透明要么完全不透明。而PNG24则支持8位(256阶)的alpha通道透明,也就是说可以存储从完全透明到完全不透明一共256个层级的透明度(即所谓的半透明)。
格式 | 最高支持色彩通道 | 索引色编辑支持 | 透明支持 |
PNG8 | 256色 | 支持 | 支持布尔透明 |
PNG24 | 约1600万色 | 不支持 | 支持8位(256阶)alpha透明 |
可能通过以上特性的对比大家还不能很直观的理解在实际应用中到底因该选择什么格式的图片文件,我们不妨结合上面的基本概念通过几个例子去给大家说明。


猜你喜欢
- MySQL Index索引是一种数据结构,可以是B-tree、R-tree、或者hash结构。其中,B-tree适用于查找某范围内的数据,可
- 这是个郁闷的问题。主级获得ID列表 select ID from FS_SD_Address where PID=0
- “位置:首页 第一屏通栏 格式:jpg 尺寸:960*90 ……”在工作我们经常会接到这样的banner设计需求,由
- 聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select
- max() 方法返回其参数最大值:最接近正无穷大的值。语法以下是max()方法的语法:max( x, y, z, .... )参
- global.asa<SCRIPT LANGUAGE="VBScript" RUNAT=&qu
- 先来看看效果: Html源码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr
- 主要使用json模块,直接导入import json即可。小例子如下:#coding=UTF-8 import json info={} i
- 下面是实现代码# coding:utf-8import time, serialfrom struct import *import bin
- 为什么会用多页面在开发时,对于同一类型的多网站,多页面大大节省开发时间,只需要配置一次就可以实现多次开发变成单次开发,同时一个包就可以展示一
- Go-ethereum 解析ethersjs中产生的签名信息在签名验证的过程中,我们判断签名正确的前提是,签名解析后的公钥,和发起这次动作的
- 本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下示例代码:# encoding: ut
- 因此,在我接触那么多种语言当中,asp是最不严格的一种,是对程序员要求最低的一种。 昨天测试了asp.net、php和asp的运行速度比较,
- 方法1: 用SET PASSWORD命令mysql -u rootmysql> SET PASSWORD FOR 'root&
- 在Matplotlib实际使用中会有生成不同大小subplots的需求。import numpy as np import matplotl
- 今天下午在练习python时用了“if...if...else...”的分支结构,结果运行出来吓我一跳。原来我想当然的认为“if...if.
- gzip 是什么东东呢?百科跟我们说gzip是GNU zip的缩写,它是一个 GNU 自由软件的文件压缩程序。…gzip 的基础是 DEFL
- Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。例如,Laravel 内置了一个中间件来验证用户的身份认证。如果
- 一:MySQL中MyISAM表损坏原因总结:1、 服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld 进程在
- 本文实例讲述了Python实现读取及写入csv文件的方法。分享给大家供大家参考,具体如下:新建csvData.csv文件,数据如下:具体代码