我使用这个函数来检测 UIImage 是否具有透明度:
extension UIImage {
public func isTransparent() -> Bool {
guard let alpha: CGImageAlphaInfo = self.cgImage?.alphaInfo else { return false }
return alpha == .first || alpha == .last || alpha == .premultipliedFirst || alpha == .premultipliedLast
}
}
但它不起作用。我尝试了一张没有透明度的png图像,但它仍然返回true。
对每个像素进行循环并不是一个好主意,因为我想这太费事了。 有没有办法检查UIImage是否具有透明度,就像这张图片: image
sips -g all image.png
。我刚刚检查了一个cmd-shift-4截图,实际上它有一个alpha通道(尽管没有被使用)。我猜那就是你的代码测试的东西。 - de.