UIImageView - 图片去色 变灰处理

本文介绍如何使用UIImageView将图片转换为灰度效果,详细探讨了图片去色的实现方法,适用于iOS开发中对图片进行快速灰度处理的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //图片去色置灰处理
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    //保存图片URL
    NSURL* url = [NSURL URLWithString:activityModel.activityImageUrl];
    BOOL existBool = [manager diskImageExistsForURL:url];
    if (existBool)
    {
        UIImage* image =  [[manager imageCache]imageFromDiskCacheForKey:url.absoluteString];
        self.image = [self grayImage:image];
    }
    else
    {
        [manager downloadImageWithURL:[NSURL URLWithString:activityModel.activityImageUrl]
                              options:0
                             progress:nil
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
                                if (!error && image)
                                {
                                    self.image = [self grayImage:image];
                                }
                                else
                                {
                                    self.image = [self grayImage:[UIImage imageNamed:@"image_Activity_finishBG.png"]];
                                }
                            }];
    }


图片置灰

-(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;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值