Alpha和索引色透明

在透明背景下我无法在预览中看到白色。只要我一转换到透明色,所有的白色就变成透明。如果我设置为不透明,本来和背景色相同的物体就会变成白色。”

我想跟随我一起用做实验的方法来回答这个问题可能会更有趣。下载这个实验图形会省去你很多工作。

  如果你没有下载这个文件,那就从打开一个画布为白色的新文件开始。左半部分用黑色长方形覆盖。画一个大小为画布三分之二的红色正方形,放置在黑白画布的正中。最后,再画一个小的白色长方形。复制它,并将颜色改为黑色。移动它们,使白色方块居于背景的黑色部分,黑色方块放置在与白色背景对齐的位置。
  选择文件(File)>导出预览(Export Preview)。从左下角透明类型出选择索引色透明(index transparency)。白色的画布和长方形都将变为透明。[注意:有一点非常重要,就是不要用滴管工具选取颜色。] 如果将选项改变为不透明(no transparency)则所有白色将复原。
  最后,选择Alpha透明(Alpha transparency)。画布上的白色将消失,而白色的方形则保留。点击取消(cancel)退出导出预览(Export Preview)。

  选择修改画布颜色(Modify Canvas Color)。将白色背景改为黑色,并将黑色改为白色。同样,把红框内部的颜色对调。
  象刚才所做的那样,进入导出预览(Export Preview)并选择 索引色透明(index transparency)。背景的黑色将消失。然后再选择不透明(no transparency)。
  这次当你再选择Alpha透明(Alpha transparency)时,内部的黑色方形将保留不变。
   索引色(Index color)是画布的颜色即背景色。Alpha的数值范围为从0(黑色)到255(白色),黑色代表透明,白色代表不透明。如果你的图片的白色部分是附着在某种颜色之上,那么即使背景是白色的,使用Alpha透明(Alpha transparency)后,你图片上的白色部分仍然是不透明的。  

  既然根据Alpha色谱黑色基本上是代表了透明,那么为什么上个实例中图片中间的黑色长方形仍然得以保留呢?我推测是因为程序不知为什么无法透过它依附的颜色看到它。也许这里有行家里手可以给我们提供一个权威性的 回答, 那么我会非常高兴地发表在这里。
想特别说明一下,IE6与生俱来就支持png8的索引色透明度,但不支持png的 alpha 透明度。而我们一直要解决的是让IE6支持PNG的 alpha 透明度。下面我收集整理了4种方法,但都是以滤镜、Js、css 等作为基础模拟还原效果,虽然没有真正的解决alpha透明度问题,但也总算解决了燃眉之急。 * IE6支持png8透明: IE6与生俱来就支持png8的索引色透明度,但不支持png或8位以上的 alpha 透明度。而对于非动画的GIF建议你使用PNG8,因为体积会更小 测试实例:http://blog.gulu77.com/demo/200809/test_IE6png8/
1. AlphaImageLoader 筛选器 * 使用简介:在每个标签样式中插入 filterrogidXImageTransform.Microsoft.AlphaImageLoader(src=’image.png’, sizingMethod=’scale’) * 官方原文:http://support.microsoft.com/kb/294714/zh-cn go * 测试实例:http://blog.gulu77.com/demo/200809/test_AlphaImageLoader/
2. PNG Transparency in IE * 使用简介:相对来说比较简洁,使用一段包含滤镜的JavaScript 就可以模拟图片或背景 PNG alpha 透明度。 * 官方原文:http://codingforums.com/archive/index.php?t-80555.html go * 测试实例:http://blog.gulu77.com/demo/200809/test_PNGTransparncyinIE/
3. IE PNG Fix v1.0 / 2.0 Alpha 2 * 使用简介:页面标签使用behavior:url(”iepngfix.htc”);来调用外部包含js、css的iepngfix.htc文件來修正PNG alpha 透明度。 * 官方原文:http://www.twinhelix.com/css/iepngfix/ go * 测试实例:http://blog.gulu77.com/demo/200809/test_iepngfix/
4. IE7/IE8 JavaScript library * 使用简介:ie7/ie8-js是一个解决IE与W3C标准的冲突的JS库,使微软的IE的行为像一个Web标准兼容的浏览器,支持更多的W3C标准。 * 官方原文:http://code.google.com/p/ie7-js/ go * 测试实例:http://blog.gulu77.com/demo/200809/test_ie7-js/

《Alpha和索引色透明》上的4个想法

评论已关闭。