PNG从Photoshop到Flash的透明度:如何使.swf显示.psd的确切内容?

Nox*_*tis 5 photoshop flash graphics png alpha-transparency

我在Photoshop中有两个图层:1 - 纹理,2 - 与纹理重叠的半透明图像.这两者的结合在Photoshop中看起来很不错.我将它们与Photoshop分开导出,将它们保存为24位PNG,透明度和颜色转换为sRGB.(PS的工作色彩空间是sRGB.)

将它们导入闪光灯的结果让我哭泣(见下图,注意十字架周围的区域).:(

我尝试动态加载PNG并直接将它们导入fla(压缩类型:lossles,允许平滑:false).看起来半透明区域在导出时被保存.让我感到困惑的是,为什么动态加载和直接导入之间的结果不同.

我错过了什么?对这些症状的深入解释将受到高度赞赏.


EDIT1这是我坚持的psd.在zip中你会找到transparency.psd,它只有两层.我仍然没有运气将它们放入fla:透明区域变脏.

http://noregret.org/test/transparency.zip(400 kb)


EDIT2一位闪存开发人员向我指出了" 预乘alpha问题 ".

http://en.wikipedia.org/wiki/Alpha_compositing#Description

我认为这一定是我要克服的问题.

据我所知,Photoshop内部使用直接alpha(在PNG导出上预乘白色),Flash使用预乘alpha.但我仍然没有得到它:什么产生透明图像渲染的差异?而且我仍然不知道我需要执行哪些操作来使PS和Flash中的内容看起来相同(或者至少我如何指导我们的艺术家准备图像).

任何人?我正在继续挖掘谷歌的答案.


EDIT3不幸的是,我不能平淡的形象.这个例子只是大局的一小部分.我有一个相当复杂的界面,纹理顶部有很多半透明元素.图片看起来很酷(就像是用皱巴巴的纸板或其他东西制成的).所以,我需要单独的纹理和半透明布局.在闪存中向顶层添加混合模式确实可以解决"鬼影区域"问题,但它也会显着改变图像,这是不可接受的.


半透明层:

在此输入图像描述

纹理层:

在此输入图像描述

结果(Windows上的PS和Flash Player的屏幕截图):

  • Photoshop(原创):好的
  • Flash(导入fla):重鬼区
  • 闪光(png加载):轻鬼区

在此输入图像描述

小智 1

看起来您正在 FLA 中获得压缩的 JPEG 图像格式,而不是 PNG。为了避免这种情况,您需要指定图像压缩应该是无损的。您可以在库或 MovieClip 道具中执行此操作。