一、在iOS開發中,給圖片置灰色這個功能經常會用到,例如商品展示時,商品過期或者下線了,那么圖片就需要這個功能。下面這個方法就可以到達目的。
/** UIImage:去色功能的實現(圖片灰色顯示) @param sourceImage 圖片 */ - (UIImage *)grayImage:(UIImage *)sourceImage { int bitmapInfo = kCGImageAlphaNone; int width = sourceImage.size.width; int height = sourceImage.size.height; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); CGContextRef context = CGBitmapContextCreate (nil,width,height,8,0,colorSpace,bitmapInfo); CGColorSpaceRelease(colorSpace); if (context == NULL) { return nil; } CGContextDrawImage(context,CGRectMake(0, 0, width, height), sourceImage.CGImage); UIImage *grayImage = [UIImage imageWithCGImage:CGBitmapContextCreateImage(context)]; CGContextRelease(context); return grayImage; }
實現效果:
之前:

之后:

