我从以下网址获取了示例代码:how to mask an image以屏蔽图像。屏蔽UIImage时出现问题
代码是可以正常使用的iPhone模拟器,但不正确地工作在iPhone 4上的模拟器(高清晰度的图像加载时的...)
这里是我的代码和屏蔽功能:
- (void)someMethod {
UIImage* image = [UIImage imageNamed:@"image.png"]; // [email protected] is loaded for high-res device
UIImage* mask = [UIImage imageNamed:@"mask.png"]; // [email protected] is loaded for high-res device
UIImage* maskedImage = [self maskImage:image withMask:mask];
// ... Some code here displaying maskedImage
}
- (UIImage *)maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
UIImage* maskedImage = nil;
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
maskedImage = [UIImage imageWithCGImage:masked];
return maskedImage;
}
在iPhone 4模拟器上加载[email protected]和[email protected],然后裁剪生成的maskedImage。
任何想法我做错了什么?
感谢。您是否有任何示例代码将对标准和高分辨率图像执行遮罩工作? – Joshua 2010-09-04 19:37:23