本文来自:http://www.ued163.com/?p=640、http://www.ued163.com/?p=645
作者:zymo 日期:09-09-18 时间:8:34 上午
一:图片格式介绍
Gif格式特点
透明性: Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)。
动画: Gif这种格式支持动画。
无损耗性: Gif是一种无损耗的图像格式,这也意味着你可以对gif图片做任何操作也不会使得图像质量产生损耗。
水平扫描:Gif是使用了一种叫作LZW的算法进行压缩的,当压缩gif的过程中,像素是由上到下水平压缩的,这也意味着同等条件下,横向的gif图片比竖向的gif图片更加小。例如500*10的图片比10*500的图片更加小
间隔渐进显示:Gif支持可选择性的间隔渐进显示
由以上特点看出只有256种颜色的gif图片不适合照片,但它适合对颜色要求不高的图形(比如说图标,图表等),它并不是最优的选择,我们会在后面中看到png是最优的选择。
Jpeg格式特点
透明性: 它并不支持透明。
动画: 它也不支持动画。
损耗性: 除了一些比如说旋转(仅仅是90、180、270度旋转),裁切,从标准类型到先进类型,编辑图片的原数据之外,所有其它操作对jpeg图像的处理都会使得它的质量损失。所以我们在编辑过程一般用png作为过渡格式。
隔行渐进显示:它支持隔行渐进显示(但是ie浏览器并不支持这个属性,但是ie会在整个图像信息完全到达的时候显示)。
由上可以看出Jpeg是最适web上面的摄影图片和数字照相机中。
Png格式特点
类型: Png这种图片格式包括了许多子类,但是在实践中大致可以分为256色的png和全色的png,你完全可以用256色的png代替gif,用全色的png代替jpeg
透明性: Png是完全支持alpha透明的(透明,半透明,不透明),尽管有两个怪异的现象在ie6(下面详细讨论)
动画: 它不支持动画
无损耗性: png是一种无损耗的图像格式,这也意味着你可以对png图片做任何操作也不会使 得图像质量产生损耗。这也使得png可以作为jpeg编辑的过渡格式
水平扫描: 像GIF一样,png也是水平扫描的,这样意味着水平重复颜色比垂直重复颜色的图片更小
间隔渐进显示: 它支持间隔渐进显示,但是会造成图片大小变得更大
更多关于PNG
PNG8 - 256色PNG的别名
PNG24 - 全色PNG的别名
PNG32 - 全色PNG的别名
其它图片格式与PNG比较
众所周知GIF适合图形,JPEG适合照片,PNG系列两种都适合。
相比GIF: PNG 8除了不支持动画外,PNG8有GIF所有的特点,但是比GIF更加具有优势的是它支持alpha透明和更优的压缩。所以,大多数情况下,你都应该用PNG8不是GIF(除了非常小的图片GIF会有更好的压缩外)。
相比JPEG: JPEG比全色PNG具有更加好的压缩,因此也使得JPEG适合照片,但是编辑JPEG过程中容易造成质量的损失,所以全色PNG适合作为编辑JPEG的过渡格式.
二:对png8的误解
Png8的在ie中的怪异表现:
1.半透明的png8在ie6以下的浏览器显示为全透明。
2.Alpha透明的全色PNG(png32)在ie6中会出现背景颜色(通常是灰色)。
由上面可以总结:
(a)全透明的png8可以在绝大多数浏览器中正常显示(就像gif一样)。半透明的png8在除了ie6及其以下的浏览器下错误的显示成全透明,其它浏览器都能正常显示半透明。这个bug并不需要特殊对待,因为在不支持半透明的浏览器下只是显示为全透明,对用户体验影响不大,它反而是透明gif的加强版。
(b)第二个bug没有什么好的方法解决,只能通过影响性能的方法AlphaImageLoader与需要加特殊标签(VML)。
因此得出结论就是:请使用PNG8。
Png8的软件问题
1.Photoshop只能导出布尔透明的PNG8。
2.Fireworks既能导出布尔透明的PNG8,也能导出alpha透明的PNG8.
3.pngquant与pngnq这两个命令行软件可以转换全色png为256色的png8。
分享到:
相关推荐
总的来说,这个开源库和源码提供了一个深入了解PNG图像格式和zlib压缩库的机会,对任何想要深入研究图像处理、压缩算法或优化技术的开发者来说都是宝贵的资源。通过学习和实践,你可以掌握创建自己的PNG处理工具或...
pnglib是一个开源库,用于处理PNG图像,而ZLIB则是一个通用的无损数据压缩库,它是PNG库的核心组成部分,因为PNG文件本身就包含了ZLIB压缩的数据。 在VC6.0中集成pnglib和zlib1.2.8库的步骤如下: 1. **下载与解压...
通过阅读和理解源代码,可以学习到如何在没有第三方库的情况下处理PNG图像,这对于MFC开发者来说是一个宝贵的学习机会。同时,这也提示我们,即使面对复杂的任务,也可以寻找简洁、高效的方法来解决。
综上所述,这个项目提供了一个很好的机会去学习和实践C语言在图像处理方面的应用,同时也涵盖了基本的图像格式理解和转换技巧。对于想要深入了解图像处理或开发相关软件的开发者来说,这是一个有价值的资源。
这为开发者提供了一个宝贵的学习机会,了解如何优化图像处理代码,特别是在处理大量图像或需要高效转换的场景下。 在标签"软件/插件"中,我们可以理解这是一个与软件开发相关的主题,可能涉及到如何将这些改进集成...
Tinypng采用了基于PNG8的有损压缩技术,将原本的24位PNG或32位PNG转换为8位PNG,减少颜色通道,同时通过智能丢弃肉眼难以察觉的颜色差异来压缩图片。对于JPG图片,它会调整JPEG的质量设置,找到最佳的平衡点,以减少...
标签"MINIST"表明这些PNG图片与原始MINIST数据集相关联,每个图像对应一个数字标签(0到9)。在实际应用中,这些标签用于监督学习,指导模型学习数字的特征并进行分类。 在处理这个压缩包中的子文件"src"时,首先...
TinyPNG API是一个在线服务,它采用智能有损压缩技术,主要针对24位和8位的PNG图像以及JPEG图像。这种压缩方法能够在人眼几乎察觉不到质量损失的情况下,显著减少图片的文件大小。这主要得益于它对颜色数量的优化和...
它支持24位色彩,同时提供了一个8位通道用于透明度信息,使得图标可以有半透明效果,更符合现代设计的趋势。 2. **Android应用程序图标设计**:在Android平台,应用图标不仅要在主屏幕上显示,还可能出现在通知栏、...
在本实例中,我们关注的是一个使用PHP编写的text2png脚本,它能够将文本转换为PNG格式的图片。这个功能在很多场景下都非常有用,例如生成验证码、创建自定义动态图标的文本logo,或者在无法直接显示HTML文本的环境中...
1. **解析PNG文件结构**:PNG文件格式遵循一个固定的头部结构,包括8字节的魔数(识别符)、图像的宽高、颜色类型、压缩方法、过滤方法和无损压缩算法。解码器需要理解这些元数据,以便正确处理图像数据。 2. **块...
在当前的数字化时代,NFT(非同质化代币)已经成为了数字艺术、收藏品领域的一个重要概念。NFTs的独特性在于每个代币都是...对于开发者而言,这既是一个学习WebGL和three.js的好机会,也是一个探索NFT世界的新途径。
在这个项目中,我们有一个用C++编写的简单PNG渲染器,它专注于在CPU上生成PNG图像,这通常涉及到像素级别的处理和颜色空间转换。 在描述中,“手工基本渲染器”暗示了这个程序是通过原始编程实现的,没有使用高级...
总结来说,这个压缩包提供了一个基于VB的PNG图片分割工具,它能够批量处理PNG图像,虽然目前存在一些限制(如不支持透明度保存),但通过提供的源码,用户有机会对其进行改进或作为学习图像处理的实例。
"schedule-viewer-png"似乎是一个项目或者应用的名称,可能是用于查看或管理日程的软件。虽然没有提供具体的标签,但我们可以从标题和文件名中推测一些可能涉及的IT知识点。 1. 图片格式:PNG(Portable Network ...
"8x8点阵贪吃蛇"是一款基于51单片机实现的简易游戏,它在8x8的LED点阵屏上展示了经典的贪吃蛇玩法。在这个项目中,我们看到...同时,对于有兴趣的开发者来说,这也是一个挑战自我、提升编程和逻辑思维能力的好机会。
该项目是一款基于Python 3和Shell技术的数据分析基础版源码设计,共包含315个文件,涵盖197个PNG图片、44个eddx文件、25个tex文件、10个pdf文件、9个jpg文件、8个sty文件、4个jpeg文件、3个md文件、2个ipynb文件和2...
这为开发者提供了一个很好的机会,不仅可以学习到如何用PHP处理二进制图像数据,还可以根据自己的需求定制或改进工具。开源社区通常鼓励分享和协作,所以这个项目可能有活跃的讨论区和贡献者,帮助解决用户的问题,...
1. Wallpaper.png:这可能是一个关于壁纸设计的源代码示例,展示如何创建或处理图像以用作设备背景。 2. qqzone.png:可能与腾讯QQ空间的应用界面或功能有关,源码可能涉及社交网络应用的开发。 3. camera.png 和 ...
5. "libharu_2_0_8.tgz":Haru PDF是一个开源的PDF库,与JagPDF类似,可能用于处理包含PNG图像的PDF文档。 6. "libpng-1.6.23.tar.xz":与之前相同的libpng版本,但使用了xz压缩算法,可能是为了节省存储空间。 7. ...