2012-11-27 60 views
-2

它看起来像PSD文件中的合并图像数据包含与白色(基于透明度)混合的RGB数据。这是正确的所有版本的Photoshop/PSD?我可以禁用它或控制该颜色吗?Photoshop是否总是将透明图像与白色混合?

上下文:我正在阅读使用C++代码的PSD文件(尽管没有必要的编码知识来回答我相信的问题)。 PSD文件包含“图像数据部分”(RGB,透明度(如果有的话),然后是alpha蒙版)中所有图层的合并数据。根据我的经验,RGB数据基于透明度预先乘以白色。当你想将RGB与基于透明度的东西混合时,这会导致问题(想想:我将这些数据用作游戏引擎中的纹理)。我附上说明问题的图片。顶部图像是PhotoShop中的源代码。左下方显示合并数据中的RGB - 请参阅透明图像部分与白色混合。我的目标是从没有白色混合的所有图层获取RGB数据,即右下角的图像(只有完全透明的部分用白色填充)。

enter image description here

在忽略层的任何工具(IrfanView的举例)只需打开透明PSD文件,你会看到图像被预乘白色。

PNG等格式支持透明图像部分的颜色 - 不会与白色(或其他颜色)混合。

所以我的问题:我有任何控制权,与白色混合?是否所有的PhotoShop版本都这样做?

+0

怎么了downvotes没有任何评论? –

回答

0

你无法控制这个。 Photoshop总是将图层与白色合并。

我们最终做的是在将PSD文件导入到我们的引擎期间,基于alpha值的颜色减去该颜色。

2

如果我正确理解您的问题,听起来好像您可能已将图层与白色默认背景合并。 Photoshop默认情况下会将图像与其周围的颜色混合,因此如果图像周围出现白色,则会混合白色,这对所有版本的Photoshop都是适用的。

你应该有自己想要的模糊层,然后重试。编辑: 好的。那么它推出什么是它想要推出。我假设你正在使用高斯模糊,如果你是,它正在做它应该做的。为了达到您的期望,您不能单独使用模糊工具。有些形状比其他形状更尖锐,有些则比其他形状更模糊。由于高斯模糊对所有事物设置了统一的模糊,所以不可能期望Photoshop能够在一个简单的动作中完成自己想要的操作(但如果您想多次执行此操作,则可以自己动作)。

为了从点A到点B,我建议将每一行放在它自己的层上来启动,然后使用smudge toolblur tool来获得你想要的行数。下面是与例如涂抹工具的:

enter image description here

你可能想使你刷的0%硬度100%,而不是为更锐利的线条。对于Photoshop来说,很难让您完成一个完全模糊的线条,就像您要求的那样。但是你仍然可以使用模糊的线条。对于想要做更多颠簸的线条,您可以使用Magic Wand工具选择软笔触,然后使用Paint Bucket工具填充它们以获得要查找的效果(之前和之后):

enter image description here

同样,Photoshop没有内置动作来执行所需操作。它所有的功能都是为整个图像产生通用效果,并且这对所有版本的Photoshop都是如此,但获得您想要的效果非常容易。确保一切都在自己的图层上,并尝试使用Photoshop提供的工具。

+0

对不起,我想我的问题还不够清楚。我编辑了我的问题来更好地解释问题。 –

+0

好的。我编辑了我的答案,希望它有帮助。 – Nagoshi

+0

谢谢你的回答,我相信你对你所说的话完全正确。但它不回答我的问题。我的问题不是关于工具。这是关于Photoshop如何保存数据。我在说PSD文件包含合并的RGBA数据的一部分,看起来像保存该数据时,Photoshop会合并所有图层的RGB数据,然后您可以说它会将结果与不透明的白色图层进行合并。我试图弄清楚我是否可以控制这种行为。 –