我使用这个函数来检测 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
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我尝试使用不透明的 png 图像,但它仍然返回 true。
每个像素循环不是一个好主意,因为我猜它太贵了。知道如何检查 UIImage 是否具有透明度,如下图所示: image
您的解决方案似乎很好并且工作没有问题,但您也可以查看这个:
- (BOOL)hasAlpha : (UIImage*) img
{
CGImageAlphaInfo alpha = CGImageGetAlphaInfo(img.CGImage);
return (
alpha == kCGImageAlphaFirst ||
alpha == kCGImageAlphaLast ||
alpha == kCGImageAlphaPremultipliedFirst ||
alpha == kCGImageAlphaPremultipliedLast
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |