ios 图片裁剪框架_iOS 图片裁剪与修改
最近做的项目中需要上传头像,发表内容的时候也要涉及到图片上传,我直接用的原图上传,但是由于公司网络差,原图太大,老是加载好久好久,所以需要把原图裁剪或者修改分辨率之后再上传,找了好久,做了很多尝试才解决问题,下面记录一下,以便帮助自己查找,也希望能帮助其他人。
我们一般图片上传最好使用UIImageJPEGRepresentation(image,0.1)这个方法先把图片处理一下,其实这个方法把图片压缩之后,图片大小会小很多(小多少待会再讲),但是在app上人眼的感觉差不多,我对图片的处理如下:
从相册拿到图片后,先经过方法修改图片的大小,也就是分辨率,方法如下:
- (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size
{
UIGraphicsBeginImageContextWithOptions(size,NO,0.0);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
因为我是要上传头像,所以我把图片的size设置为(128,128),这里我在模拟器中截取到了一个320*320的图片,然后经过这个方法压缩后得到的图片是20.3KB,然后我在上传之前又用UIImageJPEGRepresentation(image,0.05)把图片品质压缩了一下,图片的大小变成了1.5KB左右,这样的小图,在app上加载起来快急了,之前那个七八十KB的图片经常都加载不出来呢,现在OK了~。
总结:1、用 - (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size 修改图片的分辨率;
2、用 UIImageJPEGRepresentation(image,0.1)这个方法来压缩图片品质。
其他补充,另一个方法UIImagePNGRepresentation(image),这个方法拿到的图片会比UIImageJPEGRepresentation(image,1.0)拿到的图片大一点,不知道为什么,欢迎其他人来补充。
另一个裁剪图片的某部分区域的方法:
- (UIImage *)croppedImage:(UIImage *)image
{
if (image)
{
CGRect rectMAX = CGRectMake(0, 0, 128, 128);
CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, rectMAX);
UIGraphicsBeginImageContext(rectMAX.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, rectMAX, subImageRef);
UIImage *viewImage = [UIImage imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();
CGImageRelease(subImageRef);
return viewImage;
}
return nil;
}
这个方法可以获取裁剪后的图片,举个例子,一个256*256的图片,用这个方法之后,就可以获取到左上角一个128*128区域的图片,具体裁剪哪里,可以修改上面rectMax的坐标和大小。
ios 图片裁剪框架_iOS 图片裁剪与修改相关推荐
- ios 图片裁剪框架_iOS图片裁剪器 – RSKImageCropper
RSKImageCropper iOS图片裁剪器,类似Contacts应用中的图片定位美化. 基础使用方法 导入类header. #import Just create a view controll ...
- 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义、支持跨进程回调
YImagePicker 项目地址:yangpeixing/YImagePicker 简介: 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义.支持跨进程回调 ...
- ios xib 初始化高度_iOS图片伸缩技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能.极强的用户体验.华丽简洁的外观.华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设 ...
- java实现轮播图片_Banner框架实现图片轮播
Banner 实现图片轮播 简介 导入 自定义样式 快捷使用 总结 Blog如有不对,敬请斧正 喜欢Android的可以关注我,日常更新Android干货 看都看到这了,加个关注叭! 简介 Banne ...
- 小红书图片剪裁框架+微信图片选择器+超高清大图预览,高级Android程序员必会
.setFirstImageUrl(null)//设置上一次选中的图片地址 .setVideoSinglePick(true)//设置视频单选 .setCropPicSaveFilePath(&quo ...
- ios 裁剪框大小_iOS实现裁剪框和图片剪裁功能
这篇文章主要为大家详细介绍了iOS实现裁剪框和图片剪裁功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下图片处理中经常用的图片剪裁,就是通过剪裁框确定图片剪裁的区域,然后剪去该区域的图片,今天实现 ...
- ios 图片居中裁剪_IOS图片裁剪和小图看大图动画
IOS的UIImagePickerController可以让用户通过相机或者相册获取想要的图片,并且通过设置allowsEditing属性允许用户在选择了图片以后对图片进行裁剪.不过在某些时候会出现正 ...
- ios 裁剪框大小_ios 图片裁剪修改尺寸的方法总结
目前使用过的图片裁剪方法 1.等比例压缩 裁剪出的图片是以asize最小值为边框的正方形图片 //修改图片尺寸同比缩放 + (UIImage*)thumbnailWithImageWithoutSca ...
- ios 将矩形图片裁剪成圆形图片
在ios中将一个正方形的图片裁剪成圆形的图片是一件非常容易的事情, 直接设置 imageView.layer.cornerRadius 这个属性, 再设置 imageView.clipsToBound ...
最新文章
- Pytorch view()、squeeze()、unsqueeze()、torch.max()
- hibernate中一对多关系的映射
- wp7中的fill_parent
- pandas新建dataframe_pandas数据处理
- 深度学习《Photo Editing》
- Docker学习文档之二 搭建环境-Linux环境
- 错误记录(12):No 'Access-Control-Allow-Origin' header is present on the requested resource.
- NSURLCache详解和使用
- 网络工程师和网络管理原的区别
- 不是我吹,这款神仙 IDEA 插件你真没用过!
- CSS权威指南(第三版)笔记
- php客户订单管理系统,PHP订单管理系统完整版源码PHP订单管理系统完整版源码
- vue单页面html缓存问题,vue单页面 回退页面 keeplive 缓存问题
- W型加密栅栏密码解密
- 黑苹果原版安装从零开始---5驱动安装篇
- 阿里云部署nginx
- python中transform_Python rendering.Transform方法代码示例
- 深度学习之facenet人脸识别网络介绍
- TORCHVISION 目标检测微调教程
- ORA-01000-超出打开游标的最大数(解决及原因)
热门文章
- print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?
- string的基本用法
- maven 打包时动态替换properties资源文件中的配置值
- Memcached安装及配置
- 从 Google 代码库找到的好东西 [转]
- CSS3文字渐变效果
- 读书笔记《React:引领未来的用户界面开发框架》
- 跑步与读书都废掉了...工作目前也在换新的.
- 计算机网络学习笔记--网络层知识点整理
- 三层架构之初识庐山真面目