Defining an intermediate BOOL variable would help understand what all this means, example: ( *not really sure if that's what it means* )

```objc
const BOOL imageHasAlphaInfoButOnlyThreeComponents = (((bitmapInfo & kCGBitmapAlphaInfoMask) & (kCGImageAlphaFirst | kCGImageAlphaLast)) != 0 && CGColorSpaceGetNumberOfComponents(colorSpace) == 3));

else if (imageHasAlphaInfoButOnlyThreeComponents) { }
```