gpt4 book ai didi

带有 tRNS block 的 PNG 真彩色

转载 作者:行者123 更新时间:2023-12-04 21:01:25 25 4
gpt4 key购买 nike

我想确认我对 PNG 文件格式描述的解释是正确的,颜色类型为 0x02 并且存在 tRNS 块。它在 PNG 网站上说:

For colour types 0 or 2, two bytes per sample are used regardless of the image bit depth (see 7.1: Integers and byte order). Pixels of the specified grey sample value or RGB sample values are treated as transparent (equivalent to alpha value 0); all other pixels are to be treated as fully opaque (alpha value 2bitdepth-1). If the image bit depth is less than 16, the least significant bits are used and the others are 0.



给出相同的 tRNS 块:
Length: 6
Type: tRNS
Data: 00 ff 00 ff 00 ff
CRC: 37581b7d

这是否意味着 RRGGGBBB: 0xFFFFFF 或白色被视为透明而所有其他颜色都是如此?如果是这样,对于一般情况,我需要构造一个这种颜色的数组(比如 int 数组),并且在 IDAT 块的解码期间,我需要查找颜色是否是透明颜色之一,如果是,它被视为 (RRGGBBAA) 0xRRGGBB00,还是完全透明?对于这种情况,什么是好的 LUT?

谢谢!

最佳答案

你的解释是正确的。

I need to look up if the color is one of the transparent color,



实际上不是“其中之一”而是透明颜色:在真彩色+TRNS 场景中,除了一种颜色外,所有颜色都是不透明的。

What would be a good LUT for such case?



我认为这种情况与 LUT 无关。将此格式视为存储具有“硬”(是/否)透明度的真彩色图像的有效方式。解码器通常会解码图像添加一个 alpha channel (然后颜色实际上会被忽略),(例如,您可以在这里看到 lineToARGB32 方法)或通过忽略 TRNS。

请注意,这种 truecolour+TRNS 的情况并不常见,这种格式的 PNG 图像并不多,许多读者在这种情况下只是忽略了 TRNS。

关于带有 tRNS block 的 PNG 真彩色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24480876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com