Object-C UIImage 黑白处理

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 基础

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 线程

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> OpenGL ES

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> GPUImage

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> AVFoundation

零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> CocoaPods


一.UIImage 黑白处理


/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:Object-C UIImage 黑白
//@Time:2021/10/10 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

/**
 *  return 灰色图片
 *  @param imageName        图片名称
 */

-(UIImage *)imageToGrary:(NSString *)imageName {
    // 1.拿到图片,获取宽高
        CGImageRef imageRef = [UIImage imageNamed:imageName].CGImage;
        NSInteger width = CGImageGetWidth(imageRef);
        NSInteger height = CGImageGetHeight(imageRef);
        
        // 2:创建颜色空间(灰色空间
        CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceGray();
        
        CGContextRef contextRef = CGBitmapContextCreate(nil,
                                                        width,
                                                        height,
                                                        8, // 固定写法  8位
                                                        width * 4, // 每一行的字节  宽度 乘以32位 = 4字节
                                                        colorSpaceRef,
                                                        kCGImageAlphaNone); // 无透明度
        if (!contextRef) {
            return [UIImage imageNamed:imageName];
        }
     
        CGContextDrawImage(contextRef, CGRectMake(0, 0, width, height), imageRef);
        
        CGImageRef grayImageRef = CGBitmapContextCreateImage(contextRef);
        UIImage * graryImage = [UIImage imageWithCGImage:grayImageRef];
        //释放内存
        CGColorSpaceRelease(colorSpaceRef);
        CGContextRelease(contextRef);
        CGImageRelease(grayImageRef);
        return graryImage;

    
}


- (void)viewDidLoad {
    [super viewDidLoad];
    UIImage* dstImage = [self imageToGrary:@"123.png"];
    return;
}

原图:

Object-C UIImage 黑白处理

结果:

Object-C UIImage 黑白处理

二.猜你喜欢


未经允许不得转载:猿说编程 » Object-C UIImage 黑白处理
喜欢(0) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏