【发布时间】:2020-01-07 16:44:03
【问题描述】:
这个 32 位 bmp https://drive.google.com/open?id=1thySBsggtdihd3LByiAwQwZmVo1lzZfl 具有透明度。但由于某种原因,我的图像查看器/编辑器都没有显示透明度。
我该如何修复这个 bmp?
【问题讨论】:
标签: image transparency bmp
这个 32 位 bmp https://drive.google.com/open?id=1thySBsggtdihd3LByiAwQwZmVo1lzZfl 具有透明度。但由于某种原因,我的图像查看器/编辑器都没有显示透明度。
我该如何修复这个 bmp?
【问题讨论】:
标签: image transparency bmp
您的 BMP 文件未正确编码以支持透明度。
取决于压缩方式,默认RGB方式支持24位颜色,但BITFIELDS压缩支持32位颜色(24位+alpha通道)。
根据Wikipedia:
对于BI_BITFIELDS,标头地址1Eh 的值应为3。
而地址36h、3Ah、3Eh、42h 的值定义了掩码:
36h 4 00 00 FF 00 00FF0000 Red channel bit mask (BI_BITFIELDS)3Ah 4 00 FF 00 00 0000FF00 Green channel bit mask (BI_BITFIELDS)3Eh 4 FF 00 00 00 000000FF Blue channel bit mask (BI_BITFIELDS)42h 4 00 00 00 FF FF000000 Alpha channel bit mask
您可以在线分析图片的元数据here
你的文件分析结果,压缩是None:File Name: BLUE_CLOSEBUTTON_BMP.bmpFile Size: 14 kB...Compression: None
我使用GIMP 来保存具有透明度的 BMP。
分析结果,压缩是Bitfields:
File Name: 1.bmpFile Size: 14 kBCompression: Bitfields...Red Mask: 0xff000000Green Mask: 0x00ff0000Blue Mask: 0x0000ff00Alpha Mask: 0x000000ff p>
这是带有透明条纹的 BMP(文件已被网站自动转换为 PNG):
检查你的图片是否真的有透明度:
<img src="https://i.stack.imgur.com/NCdOW.png" style="background-color:blue;" />
检查我发布的图片是否真的有透明度:
<img src="https://i.stack.imgur.com/urljs.png" style="background-color:blue;" />
【讨论】: