仅作为背景可见的不可见 PNG 图像层

Cal*_*lum 50 windows png adobe-photoshop graphics-editing

我最近遇到了一个非常奇特的图像,具有奇怪的属性。该图像为 PNG 格式,仅显示具有透明背景的简单鸟。我的朋友给我发送了带有简单说明的图像,只是为了保存它并将其设置为我的背景。

只有海鸥的原始图像

将图像设置为我的背景后,第二张图像似乎显示实际上海鸥站在武器上:

带有秘密层的背景图像?

起初,这让我对图像的性质以及如何制作这样的图像感到非常好奇。我在 Photoshop 中打开了图像,并没有出现任何异常 - 图像仍然与透明的海鸥相同,没有隐藏的图层或蒙版使其不可见。在 Photoshop 中检查图像后,我以为 Windows 在将文件设置为我的桌面背景时对其进行了更改 - 导航到%AppData%\Microsoft\Windows\Themes图像后似乎是相同的。

与在 Photoshop 中查看或编辑相比,为什么此图像在设置为 Windows 桌面背景时显示单独的隐藏层或完全单独的图像?

Rha*_*nys 59

我猜这就是Smashing Magazine这篇文章中所谓的“Dirty Transparency” 。

基本上透明 PNG 中的任何颜色都可以用 RGBA 值来描述,其中 RGB 代表红色、绿色和蓝色通道,A 代表 Alpha。“不可见”颜色可以有任何 RGB 值 + 0 Alpha,这意味着颜色将保留原始信息,但渲染为透明,因为其 alpha 设置为 0。

为什么要在使用 Alpha 时存储 RGB 值?因此,您可以获得平滑的边缘和透明的颜色——与透明背景 GIF 中的锯齿状边缘不同。PNG 的透明度可以从 0 到 255,在 GIF 中它要么是 100% 透明,要么是不透明。要以 50% 的透明度渲染某些内容,您仍然需要知道 RGB 值,因此该值会被存储。大多数图像编辑器软件在保存完全透明的颜色时会丢弃该 RGB 信息,包括 Photoshop。

我不能说 CC 版本,但是要在较旧的 Photoshop 版本中看到“不可见”的颜色,您需要一个插件。选择一个:PhotofreebiesSuperPNG。SuperPNG 看起来更新,更简洁。

为什么这个技巧有效?壁纸必须是不透明的,因为它们“背后”没有任何东西可以显示出来,对吗?我的猜测是 Windows 丢弃了 Alpha 通道信息,在此过程中显示了隐藏的 RGB 值。

  • 我会说这是 Windows 中的一个错误。如果像素的 alpha 值为 0,则该像素是透明的,RGB 值应该无关紧要。Windows 应在其他内容(例如白色背景)之上呈现包含透明度的图像。 (15认同)
  • 我只是通过删除透明图层蒙版(alpha 通道)来尝试您所说的,这是我从未想过的 - 通过这样做,我能够复制效果。这是制作背景的一种非常酷的方式,我想我很快就会探索它的拖钓功能:D (6认同)
  • @保罗。同意,除非它是为桌面定义的背景颜色,如果图像没有被拉伸或平铺并且太小而无法填充桌面,则使用相同的颜色。比喻是墙纸位于纯色表面或墙壁的顶部。 (5认同)
  • 如果 Adob​​e Photoshop 需要插件来实现这一点,我会感到非常惊讶 - 我希望它提供类似于 GIMP 的控件,例如通过曲线或级别工具调整 alpha 值(这只是众多方法中的两种)使透明部分可见)。 (3认同)
  • @MichaelSchumacher 您会惊讶于某些领域缺少 Photoshop。公平地说,我不知道当前的 CC 版本是否已经支持它。我决定坚持使用我的永久许可 PS,所以我的版本现在已经过时了。 (2认同)
  • @Paul 但是,您不需要将 alpha 设置为 0。Alpha 1 也非常透明,它将避开大多数自动丢弃功能。 (2认同)

Ble*_*erg 13

添加到Nihal 的答案,这可以通过使用 GIMP 中的“反擦除”画笔来重现。如果图像使用支持它的格式,则擦除画笔可以添加或删除 Alpha 通道(按住 Alt 在擦除和反擦除之间切换)。

对于克里达纪,你可以这样做: Layer > Split Alpha > Alpha into Mask。之后,您可以隐藏或删除刚刚创建的透明蒙版 1 通道,您将看到完整的图像。

由于 Windows 背景后面没有任何东西,它可能只是去除透明度并在没有它的情况下显示图像,(从它的外观快速而肮脏的 32 位图像到 24 位)。