如何检查图像是否有 alpha 通道

How to check if image has an alpha channel

我正在使用 Windows 成像组件加载图像。我可以通过调用 IWICBitmapSource::GetPixelFormat() 轻松找出图像的像素格式。我还可以使用 IWICPixelFormatInfo 界面轻松找出每个像素的位数和通道数。

但是我如何才能确定其中一个通道是否为 Alpha 通道?当然,我可以继续手动比较从 IWICBitmapSource::GetPixelFormat() 获得的 WICPixelFormatGUIDMSDN's list of WIC image formats 但这是一种非常不方便的方式,因为有许多不同的格式我必须比较它反对并且它也不是很适合未来以防将来添加更多格式。

那么有没有更好的方法来判断图像的通道之一是否是 alpha 通道?

您可以使用IWICPixelFormatInfo2::SupportsTransparency method。请注意,此接口可能并不总是受支持。