我已经开发了一个适用于iOS5和iOS6的应用程序。但是在我升级至XCode 5和iOS7后,遇到了一些新问题。
其中一个主要问题是colorMasking不再起作用。同样的代码在安装iOS6的手机上编译和运行仍然没问题,但在iOS7上,遮罩颜色消失了。我尝试在Google上找答案,但没有找到合适的解决方法。这是iOS7的一个bug吗?或者有没有人知道更好的实现遮罩颜色的方法?
以下是代码:
其中一个主要问题是colorMasking不再起作用。同样的代码在安装iOS6的手机上编译和运行仍然没问题,但在iOS7上,遮罩颜色消失了。我尝试在Google上找答案,但没有找到合适的解决方法。这是iOS7的一个bug吗?或者有没有人知道更好的实现遮罩颜色的方法?
以下是代码:
- (UIImage*) processImage :(UIImage*) image
{
UIImage *inputImage = [UIImage imageWithData:UIImageJPEGRepresentation(image, 1.0)];
const float colorMasking[6]={100.0, 255.0, 0.0, 100.0, 100.0, 255.0};
CGImageRef imageRef = CGImageCreateWithMaskingColors(inputImage.CGImage, colorMasking);
UIImage* finalImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return finalImage;
}
以下是我找到的几篇StackOverflow帖子,帮助我在iOS6中首次实现透明度: 透明度iOS iOS中UIImage的颜色变为透明
inputImage
的位/组件与你所假定的常量进行了合理性检查?你可能还需要检查颜色模型。如果你对输入有精确的控制,这可能并不重要。 - justin