IOS处理位图
来源:互联网 发布:js attr方法 编辑:程序博客网 时间:2024/06/06 04:52
这段时间一直在做毕业设计,课题选的是用OC来实现app端的银行卡号码识别,每天都是在看资料看论文写代码,直到现在才想起来要把自己的过程在csdn记录一下(毕竟好记性不如烂笔头,靠我这脑子的记忆功能,估计一年后这些知识就忘光了)
首先还是记录下最常用的代码,那就是用位图模式编辑图片
- (UIImage *) editImage:(UIImage *)image{ CGImageRef imageRef; imageRef = anImage.CGImage; size_t width = CGImageGetWidth(imageRef); size_t height = CGImageGetHeight(imageRef); // rgb位构成 size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef); // 像素的颜色位数 size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef); // 位图每行的字节信息 size_t bytesPerRow = CGImageGetBytesPerRow(imageRef); // 图片的颜色空间 CGColorSpaceRef colorSpace = CGImageGetColorSpace(imageRef); // 位图的bitmap信息 CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef); // 图像是否抗锯齿 bool shouldInterpolate = CGImageGetShouldInterpolate(imageRef); CGColorRenderingIntent intent = CGImageGetRenderingIntent(imageRef); // 图片数据源提供者 CGDataProviderRef dataProvider = CGImageGetDataProvider(imageRef); // 拿到图片的字节数据 CFDataRef data; UInt8* buffer; data = CGDataProviderCopyData(dataProvider); buffer = (UInt8*)CFDataGetBytePtr(data); // 开始做处理 NSUInteger x, y; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { UInt8* tmp; //字符串指针 tmp = buffer + y * bytesPerRow + x * 4; // RGBA四个颜色分量,tmp指针指向需要处理的像素 // 拿到rgba值 UInt8 red,green,blue,alpha; red = *(tmp + 0); green = *(tmp + 1); blue = *(tmp + 2); alpha = *(tmp + 3); //这里就可以开始对每个像素点做处理了,比如要把rgb图转成灰度图,就让rgb的值都为brightness = 0.30*red + 0.59*green + 0.11*blue,这里省略代码 } } // 生成处理后的图片 CFDataRef effectedData = CFDataCreate(NULL, buffer, CFDataGetLength(data)); CGDataProviderRef effectedDataProvider = CGDataProviderCreateWithCFData(effectedData); CGImageRef effectedCgImage; UIImage* effectedCgImage = CGImageCreate(width, height,bitsPerComponent, bitsPerPixel, bytesPerRow,colorSpace, bitmapInfo, effectedDataProvider,NULL, shouldInterpolate, intent); effectedImage = [[UIImage alloc] initWithCGImage:effectedCgImage]; // 一定要释放!! CGImageRelease(effectedCgImage); CFRelease(effectedDataProvider); CFRelease(effectedData); CFRelease(data); return effectedImage;}
1 0
- IOS处理位图
- IOS中8位图的颜色处理
- iOS 位图数据及apha处理
- iOS图像处理(7)绘制位图
- 处理位图:
- IOS中图形图像处理第一部分:位图图像原图修改
- iOS中图形图像处理第一部分:位图图像原图修改
- IOS中图形图像处理第一部分:位图图像原图修改
- IOS中图形图像处理第一部分:位图图像原图修改
- IOS中使用像素位图(CGImageRef)对图片进行处理
- IOS中使用像素位图(CGImageRef)对图片进行处理
- IOS中图形图像处理第一部分:位图图像原图修改
- iOS 图形图像处理 一 :位图图像原图修改
- IOS中图形图像处理第一部分:位图图像原图修改
- IOS中使用像素位图(CGImageRef)对图片进行处理
- IOS中使用像素位图(CGImageRef)对图片进行处理
- IOS中图形图像处理第一部分:位图图像原图修改
- iOS图像处理(位图图像原图修改)
- mysql 数据库授权(给某个用户授权某个数据库)
- mysql5.7.10取消root密码
- iOS Runloop
- .gz文件上载到hdfs中
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
- IOS处理位图
- HDU 1043 - Eight
- 观察者设计模式
- c++primer第五版第十六章练习
- UI控件RecyclerView浅析
- android opengles 最简单的三角形的方法
- hibernate映射(一)——M到底是如何发生的?
- input输入框的各种样式 文本框为下划线 text输入框样式
- jquery 多form 提交