iOS学习笔记--图片灰度处理
2017-03-20 16:37
489 查看
本文实现将一张彩色图片转换为灰色图片。
方法一:通过自定义方法实现。
方法二:通过openCV框架实现。
如有错误请见谅!
方法一:通过自定义方法实现。
+(UIImage*)systemImageToGray:(UIImage*)image { int width = image.size.width; int height = image.size.height; //第一步:开辟颜色空间 CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceGray(); //第二步:创建颜色空间的上下文 CGContextRef contextRef = CGBitmapContextCreate(nil, width, height, 8, 0,colorSpaceRef, kCGImageAlphaNone); if (contextRef == nil) { return nil; } //第三步:渲染图片 CGContextDrawImage(contextRef, CGRectMake(0, 0, width, height), image.CGImage); //第四步:创建图片 将绘制的颜色空间转成CGImage CGImageRef grayImageRef = CGBitmapContextCreateImage(contextRef); //第五步:将C/C++图片转成UIImage UIImage * newImage = [UIImage imageWithCGImage:grayImageRef]; //释放内存 CGColorSpaceRelease(colorSpaceRef); CGContextRelease(contextRef); CGImageRelease(grayImageRef); return newImage; }
方法二:通过openCV框架实现。
#import <opencv2/opencv.hpp> #import <opencv2/imgcodecs/ios.h>
+(UIImage*)imageToGray:(UIImage *)image { //第一步:将ios平台下的图片-->openCV图片 Mat mat_image_color; UIImageToMat(image, mat_image_color); //第二步:将openCV的图片进行灰度处理 Mat mat_image_gray; //参数三:转换类型 cvtColor(mat_image_color, mat_image_gray, COLOR_RGB2GRAY); //第三步:将灰色图片转成可现实图片 cvtColor(mat_image_gray, mat_image_color, COLOR_GRAY2RGB); //第四步:将openCV的图片转成ios图片 UIImage * newImage = MatToUIImage(mat_image_color); return newImage; }
如有错误请见谅!
相关文章推荐
- IOS学习笔记 - NSFileManager,沙盒路径,NSString类路径处理,NSCache,读取文件头判断图片类型
- ios学习笔记 图片边框处理
- 【Matlab图像处理】学习笔记:二值图片
- php学习笔记(十六)图片的处理缩放、旋转、透明、锐化、翻转、裁剪
- IOS开发笔记 - 基于SDWebImage的网络图片加载处理
- [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading
- 【Matlab学习笔记】【编程实例】二(将两幅灰度图片调整成相同的尺寸,然后左右拼接到一起)
- cocos2d-x学习笔记 -- 游戏存档,切换高清,图片处理
- IOS学习笔记41--图片的缩放(二)
- IOS开发笔记 - 基于SDWebImage的网络图片加载处理
- 四 :ios学习笔记 数组及时间类处理
- IOS不错的学习资源特别是图片效果的处理上
- iOS学习笔记13— UITableView封装之下拉-上提-图片异步加载
- IOS学习笔记41--图片的缩放(一)
- 【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片
- PHP学习笔记(4)文章中的图片处理
- iOS学习笔记46——图片异步加载之SDWebImage
- iOS学习笔记——网络资源下载(下载图片)
- ASP.NET 3.5核心编程学习笔记(43):HTTP处理程序的编写之图片查看器
- IOS学习笔记41--图片的缩放(一)