UIImage 图片处理:截图、缩放、设定大小、存储 UI 图片处理是 iOS 开发中一个非常重要的topic,UIImage 是 iOS 中表示图像的类,它提供了多种方法来处理图像,在这里我们将介绍 UIImage 图片处理的四种方法:截图、缩放、设定大小和存储。 截图 截图是将 UIView 转换为 UIImage 的过程,在这里我们将介绍两种截图的方法:一是通过 Quartz Framework 和 Core Graphics Framework 实现截图,二是使用 UIGraphicsBeginImageContext() 函数来实现截图。 第一种方法: ```objectivec -(UIImage*)captureView:(UIView *)theView{ CGRect rect = theView.frame; UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [theView.layer renderInContext:context]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; } ``` 第二种方法: ```objectivec CGImageRef screen = UIGetScreenImage(); UIImage* image = [UIImage imageWithCGImage:screen]; CGImageRelease(screen); UIImageWriteToSavedPhotosAlbum(image, self, nil, nil); ``` 缩放 缩放是将 UIImage 缩放到特定的大小,这里我们将介绍两种缩放的方法:等比率缩放和自定义长宽缩放。 等比率缩放: ```objectivec -(UIImage*)scaleImage:(UIImage *)image toScale:(float)scaleSize{ UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize)); [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)]; UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; } ``` 自定义长宽缩放: ```objectivec -(UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize{ UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height)); [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)]; UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return reSizeImage; } ``` 设定大小 设定大小是将 UIImage 设置为特定的大小,这里我们可以使用 UIGraphicsBeginImageContext() 函数来实现。 ```objectivec -(UIImage *)setImageSize:(UIImage *)image toSize:(CGSize)size{ UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } ``` 存储 存储是将 UIImage 保存到设备的存储器中,或者将其保存到照片库中。这里我们将介绍两种存储的方法:将图片保存到 app 的文件里和将图片保存到手机的图片库里。 将图片保存到 app 的文件里: ```objectivec NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"]; [UIImagePNGRepresentation(image) writeToFile:path atomically:YES]; ``` 将图片保存到手机的图片库里: ```objectivec UIImageWriteToSavedPhotosAlbum(image, self, nil, nil); ``` UIImage 图片处理是 iOS 开发中一个非常重要的topic,它提供了多种方法来处理图像,包括截图、缩放、设定大小和存储等。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip