您现在的位置是:网站首页> 编程资料编程资料
PNG8格式图片是不支持半透明等问题深入分析背景半透明效果CSS链接样式代码img 半透明 处理img加半透明背景实现思路及代码css 半透明 让IE6支持png图片半透明解决方法背景半透明最佳实践div背景半透明,覆盖整个可视区域的遮罩层效果 css 背景半透明最佳实践div背景半透明 覆盖整个可视区域的遮罩层效果利用js+css简单实现半透明遮罩弹窗DIV半透明代码 兼容主流浏览器CSS 半透明度设置归纳总结[Firefox,IE,Chrome,Safari]
2021-09-07
765人已围观
简介 最近搜索了一下有关PNG8格式图片的详细解析,有说PNG8格式图片是不支持半透明的,也有持反对意见的,废话就说到这里,直接进入正题吧
最近搜索了一下有关PNG8格式图片的详细解析。发现信息比较零散,也存在有某些争议(当然了,不排除本人搜索功力差的因素)。有说PNG8格式图片是不支持半透明的,也有持反对意见的。所有才有了写这篇文章的想法。有什么说得不对的,也欢迎大家批评指正。废话就说到这里,直接进入正题吧。
首先我们来理解一下什么叫Alpha透明和索引色透明。
Alpha透明:Alpha的数值范围为从0(黑色)到255(白色),黑色代表透明,白色代表不透明。如果你的图片的白色部分是附着在某种颜色之上,那么即使背景是白色的,使用Alpha透明后,你图片上的白色部分仍然是不透明的。
索引色透明:索引色是画布的颜色即背景色,如果图片上存在与你设定的背景色相同的颜色的话,那么在索引色透明模式下,该图片上所有颜色里与背景色相同的部分以及背景色都将建成全透明。
PNG格式特点:
一、类型
PNG这种图片格式包括了许多子类,但是在实践中大致可以分为256色的PNG(PNG8)和全色的PNG(PNG24、PNG32),你完全可以用256色的png代替gif,用全色的PNG代替jpeg。
二、透明性
PNG是完全支持alpha透明的(透明,半透明,不透明),尽管在IE6下会产生两个怪异现象(下面会做解释)。
三、动画
PNG不支持动画
其实只要不涉及到半透明,PNG8和PNG24格式的图片并没有多大的区别,但是一旦考虑到半透明的时候,就会显示出本质上的区别。
PNG8是一种在制作工序和理念上完全不支持半透明的图片,色差相对于PNG24要少很多,色值也只局限于1—256种颜色。所以当用到半透明的图片来表现效果的时候,PNG8就去失去了它本身的优越性。
PNG24是一种制作工序和理念上支持半透明的图片,色差相对于PNG8要优越很多,在色值数量上也没有局限性,可以是几万种色值。它本身的优越性就在于可以让你肆无忌惮的做你想做的想要的半透明图片,而且在存储上没有半点的条件要求和限制。
但是如果想做出半透明的PNG8格式的图片还是可能的。方法就是先制作出半透明的PNG24图片,然后再用fireworks存储为PNG8格式的图片。
PNG8的在IE6中的怪异表现:
①半透明的PNG在IE6下的浏览器显示为全透明,并且不会呈现索引色透明那么自然的过渡,会出现毛边现象;
②Alpha透明的全色PNG(PNG24)在IE中会出现灰色背景。
由上面可以总结:
a.全透明的PNG8可以在任一浏览器正常显示(就像gif一样)。半透明的PNG8在除了IE6下的浏览器下错误的显示成全透明,其它浏览器都能正常显示半透明。
b.第二个bug可以用js解决(详情请见让IE6支持图片半透明!)。
PNG8格式图片的导出问题:
①PS只能导出索引模式的PNG8格式的图片(原因是PS里认知和识别的PNG8没有利用黑白灰三种明度颜色通过alpha通道来表现半透明的机能,所以在PS里打开PNG8半透明图片的时候只是默认用相近的色相来替换半透明色相);
②fireworks可以导出索引模式和Alpha模式的PNG8格式的图片;
③Alpha透明导出的图片比索引色透明导出的PNG8还要小。
首先我们来理解一下什么叫Alpha透明和索引色透明。
Alpha透明:Alpha的数值范围为从0(黑色)到255(白色),黑色代表透明,白色代表不透明。如果你的图片的白色部分是附着在某种颜色之上,那么即使背景是白色的,使用Alpha透明后,你图片上的白色部分仍然是不透明的。
索引色透明:索引色是画布的颜色即背景色,如果图片上存在与你设定的背景色相同的颜色的话,那么在索引色透明模式下,该图片上所有颜色里与背景色相同的部分以及背景色都将建成全透明。
PNG格式特点:
一、类型
PNG这种图片格式包括了许多子类,但是在实践中大致可以分为256色的PNG(PNG8)和全色的PNG(PNG24、PNG32),你完全可以用256色的png代替gif,用全色的PNG代替jpeg。
二、透明性
PNG是完全支持alpha透明的(透明,半透明,不透明),尽管在IE6下会产生两个怪异现象(下面会做解释)。
三、动画
PNG不支持动画
其实只要不涉及到半透明,PNG8和PNG24格式的图片并没有多大的区别,但是一旦考虑到半透明的时候,就会显示出本质上的区别。
PNG8是一种在制作工序和理念上完全不支持半透明的图片,色差相对于PNG24要少很多,色值也只局限于1—256种颜色。所以当用到半透明的图片来表现效果的时候,PNG8就去失去了它本身的优越性。
PNG24是一种制作工序和理念上支持半透明的图片,色差相对于PNG8要优越很多,在色值数量上也没有局限性,可以是几万种色值。它本身的优越性就在于可以让你肆无忌惮的做你想做的想要的半透明图片,而且在存储上没有半点的条件要求和限制。
但是如果想做出半透明的PNG8格式的图片还是可能的。方法就是先制作出半透明的PNG24图片,然后再用fireworks存储为PNG8格式的图片。
PNG8的在IE6中的怪异表现:
①半透明的PNG在IE6下的浏览器显示为全透明,并且不会呈现索引色透明那么自然的过渡,会出现毛边现象;
②Alpha透明的全色PNG(PNG24)在IE中会出现灰色背景。
由上面可以总结:
a.全透明的PNG8可以在任一浏览器正常显示(就像gif一样)。半透明的PNG8在除了IE6下的浏览器下错误的显示成全透明,其它浏览器都能正常显示半透明。
b.第二个bug可以用js解决(详情请见让IE6支持图片半透明!)。
PNG8格式图片的导出问题:
①PS只能导出索引模式的PNG8格式的图片(原因是PS里认知和识别的PNG8没有利用黑白灰三种明度颜色通过alpha通道来表现半透明的机能,所以在PS里打开PNG8半透明图片的时候只是默认用相近的色相来替换半透明色相);
②fireworks可以导出索引模式和Alpha模式的PNG8格式的图片;
③Alpha透明导出的图片比索引色透明导出的PNG8还要小。
相关内容
- CSS伪类与CSS伪元素的区别及由来具体说明详解如何使用CSS3中的结构伪类选择器和伪元素选择器解析CSS中的伪元素及其与伪类的区别详解CSS中的伪类与伪元素及二者间的区别浅谈CSS伪类与伪元素CSS伪类和伪元素的区别详解css3 伪元素和伪类选择器详解CSS伪类/伪元素选择器整理css伪类伪元素域高级选择器的介绍浅谈CSS 伪元素&伪类的妙用
- ie10 css hack 条件注释等兼容方式整理针对主流浏览器的CSS-HACK写法及IE常用条件注释 css 条件注释区分非IE浏览器 css 条件注释使用指南 css 条件注释使用指南CSS教程:条件注释的格式以及作用CSS条件注释详解(根据不同浏览器加载CSS)
- 如何在class内写xsl标记注意事项CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- ie6不支持两个连续并列class类名怎么解决浅谈原生页面兼容IE9问题的解决方案新版chrome浏览器设置允许跨域的实现css hack之\9和\0就可能对hack IE11\IE9\IE8无效css区分ie8/ie9/ie10/ie11 chrome firefox的代码解决CSS浏览器兼容性问题的4种方案常见的浏览器兼容性问题(小结)border-radius IE8兼容处理的方法浅谈遇到的几个浏览器兼容性问题base64图片在各种浏览器的兼容性处理 对常见的css属性进行浏览器兼容性总结(推荐)
- 用css margin去掉横排图片之间的间距CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- js 解决隐藏与显示div的相关问题CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 如何用css代码实现有立体效果的表格CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS中a标签样式的“爱恨”原则:定义链接样式的四个伪类html5 的a标签 Href 拨电话的写法a标签伪类的作用及书写顺序是什么去掉a标签超链接的虚线框的方法有关于a标签的4个伪类的使用方法a标签样式 和 a标签属性写法
- CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- CSS技术的出现实现结构与表现分离CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题