我在 Photoshop 中有两层:1——一个纹理,2——一个与纹理重叠的半透明图像。两者的结合在 Photoshop 中看起来不错。我将它们与 Photoshop 分开导出,将它们另存为 24 位 PNG,并将透明度和颜色转换为 sRGB。 (PS的工作色彩空间为sRGB。)
将它们导入 flash 的结果让我哭了(见下图,注意十字架周围的区域是什么样的)。 :(
我尝试动态加载 PNG 并直接将它们导入 fla(压缩类型:lossles,允许平滑:false)。看起来半透明区域在导出时保存不准确。更令我困惑的是,为什么动态加载和直接导入的结果不同。
我错过了什么?对这些症状的深入解释将不胜感激。
编辑1 这是我坚持的那个psd。在 zipper 内,您会找到 透明.psd ,它只有两层。我仍然没有运气将它们放入 fla:透明区域会变脏。
http://noregret.org/test/transparency.zip (400 KB)
编辑2 一位 Flash 开发人员向我指出了“ 预乘 alpha 问题 ”。
http://en.wikipedia.org/wiki/Alpha_compositing#Description
我想这一定是我正在努力克服的问题。
据我所知,Photoshop 在内部使用直接 alpha(在 PNG 导出时与白色预乘)和 Flash uses premultiplied alpha .但我还是不明白:透明图像的渲染有什么不同?而且我仍然不知道我需要执行哪些操作才能使 PS 和 Flash 中的内容看起来相同(或者至少我如何指导我们的艺术家准备图像)。
任何人?我正在继续挖掘谷歌的答案。
编辑3 不幸的是,我不能扁平化图像 .这个例子只是大图的一小部分。我有一个相当复杂的界面,在纹理之上有很多半透明元素。图片看起来很酷(就像它是由皱巴巴的纸板或其他东西制成的)。所以,我需要单独的纹理和半透明布局。在flash的顶层添加blendmode确实解决了“重影区域”的问题,但也显着改变了画面,这是 Not Acceptable 。
半透明层:
纹理层:
结果(Windows 上 PS 和 Flash Player 的截图):
最佳答案
看起来您在 FLA 中获得带有压缩的 JPEG 图像格式,而不是 PNG。为了避免这种情况,您需要指定您的图像压缩应该是无损的。您可以在库或 MovieClip Prop 中执行此操作。
关于flash - 从 Photoshop 到 Flash 具有透明度的 PNG : how to make . swf 显示 .psd 究竟是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571187/