如何判断 PNG 文件是否具有 Alpha 通道/透明度

How to tell if PNG file has an Alpha Channel / Transparency

尝试在 MAC OSX 上使用 Objective C 找到最好/最简单的方法,如果 PNG 文件有 Alpha 通道。

如果位于 IHDR 块内已知位置的颜色类型字节为 0、2 或 3,并且在第一个 IDAT 块之前不存在 tRNS 块,则没有 alpha 通道并且图像不透明。如果存在 tRNS 块,或者如果颜色类型为 4 或 6,则图像有一个 alpha 通道,它可能在某些像素中具有透明度或者它可能是不透明的。

这是一种方法:

NSBitmapImageRep *rep = [NSBitmapImageRep imageRepWithContentsOfFile:@"/path/to/image/test.png"];
BOOL alpha = [rep hasAlpha];