美文网首页
UIImage:去色功能的实现(图片灰色显示)

UIImage:去色功能的实现(图片灰色显示)

作者: 牛小牛很牛 | 来源:发表于2016-05-18 16:03 被阅读228次

- (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,      // bits per component

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;

}

//CGBitmapContextCreate 在配备Retina的设备上绘制模糊的解决方法

-(UIImage *)grayImage:(UIImage *)sourceImage

{

int bitmapInfo = kCGImageAlphaNone;

int width = sourceImage.size.width;

int height = sourceImage.size.height;

CGFloat scale = [[UIScreen mainScreen] scale];

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();

CGContextRef context = CGBitmapContextCreate (nil,

width * scale,

height * scale,

8,      // bits per component

width * scale * 4,

colorSpace,

bitmapInfo);

CGColorSpaceRelease(colorSpace);

if (context == NULL) {

return nil;

}

CGContextDrawImage(context,

CGRectMake(0, 0, width * scale, height * scale), sourceImage.CGImage);

UIImage *grayImage = [UIImage imageWithCGImage:CGBitmapContextCreateImage(context)];

CGContextRelease(context);

return grayImage;

}

相关文章

网友评论

      本文标题:UIImage:去色功能的实现(图片灰色显示)

      本文链接:https://www.haomeiwen.com/subject/xjewrttx.html