表示点击无效或者用户离线的情况下通常会使用一些灰度图片。在iPhone中如何将普通图片转换成相应的灰度图像呢?下面这段代码给出了答案。
- UIImage *grayImage(UIImage *source)
- {
- int width = source.size.width;
- int height = source.size.height;
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
- CGContextRef context = CGBitmapContextCreate (nil,
- width,
- height,
- 8, // bits per component
- 0,
- colorSpace,
- kCGImageAlphaNone);
- CGColorSpaceRelease(colorSpace);
- if (context == NULL) {
- return nil;
- }
- CGContextDrawImage(context,
- CGRectMake(0, 0, width, height), source.CGImage);
- UIImage *grayImage = [UIImage p_w_picpathWithCGImage:CGBitmapContextCreateImage(context)];
- CGContextRelease(context);
- return grayImage;
- }
其中,CGColorSpaceCreateDeviceGray会创建一个设备相关的灰度颜色空间的引用。
转载于:https://blog.51cto.com/bj007/541525