ios 改变图片尺寸_iOS基础(十八)——调整图片尺寸和大小
调整图片尺寸和大小
/**
* 调整图片尺寸和大小
*
* @param sourceImage 原始图片
* @param maxImageSize 新图片最大尺寸
* @param maxSize 新图片最大存储大小
*
* @return 新图片imageData
*/
+ (NSData *)reSizeImageData:(UIImage *)sourceImage maxImageSize:(CGFloat)maxImageSize maxSizeWithKB:(CGFloat) maxSize
{
if (maxSize <= 0.0) maxSize = 1024.0;
if (maxImageSize <= 0.0) maxImageSize = 1024.0;
//先调整分辨率
CGSize newSize = CGSizeMake(sourceImage.size.width, sourceImage.size.height);
CGFloat tempHeight = newSize.height / maxImageSize;
CGFloat tempWidth = newSize.width / maxImageSize;
if (tempWidth > 1.0 && tempWidth > tempHeight) {
newSize = CGSizeMake(sourceImage.size.width / tempWidth, sourceImage.size.height / tempWidth);
}
else if (tempHeight > 1.0 && tempWidth < tempHeight){
newSize = CGSizeMake(sourceImage.size.width / tempHeight, sourceImage.size.height / tempHeight);
}
UIGraphicsBeginImageContext(newSize);
[sourceImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//调整大小
NSData *imageData = UIImageJPEGRepresentation(newImage,1.0);
CGFloat sizeOriginKB = imageData.length / 1024.0;
CGFloat resizeRate = 0.9;
while (sizeOriginKB > maxSize && resizeRate > 0.1) {
imageData = UIImageJPEGRepresentation(newImage,resizeRate);
sizeOriginKB = imageData.length / 1024.0;
resizeRate -= 0.1;
}
return imageData;
}
ios 改变图片尺寸_iOS基础(十八)——调整图片尺寸和大小相关推荐
- php图片长宽处理,用php调整图片宽高 | 学步园
/** * 改变图片的宽高 * * @author flynetcn (2009-12-16) * * @param string $img_src 原图片的存放地址或url * @param str ...
- 指纹图片调对比度 c语言,手动调整图片打印深浅(亮度/对比度 Windows OS)
文档标题:手动调整图片打印深浅(亮度/对比度 Windows OS) 文档代码:CHN-FP0548-1 最近修改日期:2020年11月19日 手动调整图片打印深浅(亮度/对比度 Windows OS ...
- Python基础(十八): 类和对象以及它们的属性
一.类 最简单的经典类结构 class 类名:pass 复制代码 1.定义一个类 class Money:pass 复制代码 类名规范: 驼峰命名法, 并且首字母大写 2.实例化一个对象 创建一个对象 ...
- Mysql基础(十八):主从架构
目录 1.MySQL的主从复制架构 2.主从复制架构的意义? 2.1.高可用架构 2.2.读写分离架构 从库的应用场景? 3.MySQL实现主从复制的工作原理 4.如何为MySQL搭建一套主从复制架构 ...
- python_fullstack基础(十八)-并发编程
并发编程 一.进程 1.理论背景 ①操作系统背景 手工操作-穿孔卡片 原理:用户独占计算机,CPU等待手工操作,资源利用和CPU利用效率极低 批处理-磁带处理.批处理系统 原理:主机与输入机之间增 ...
- matlab 改变图片的长宽,Matlab怎么调整图片的大小,使它成为特定的长宽
满意答案 whymhm 推荐于 2017.12.15 采纳率:53% 等级:6 已帮助:2557人 一般而言,只需对目标图像进行图形句柄对象和坐标轴句柄对象进行操作即可.MATLAB中分别用gc ...
- three.js学习笔记(十八)——调整材质
介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...
- 少年碎碎念:那年我十八,心里满是她
"无论是现在还是将来,无论是天涯还是海角,无论你是否喜欢我,无论你是否嫁我,我,xxx,会一直喜欢你."--那年高三,是我先追她.有小姑娘骂得我狗血淋头,有小伙子约我操场干架. ...
- MarkDown内如何调整图片的尺寸及对齐方式?
前言 想发布已经写好的MarkDown文档,需要手动调整的地方只有图片.原因是默认插入的图片太大的话,图片会占满屏幕,导致浏览不便. 个人体验:常见的横屏情况下,一张图片不宜超过2/3屏幕高度,主体内 ...
最新文章
- android 获取控件高度_安卓开发入门教程UI控件_ImageView
- fdtd算法的matlab程序,FDTD算法的Matlab程序
- js \n直接显示字符串_显示N个字符的最短时间
- 10 本大数据高分书籍,收好给头脑充充电吧~
- python编程基础张勇答案_Python程序开发、编程基础阶段试题及答案
- 普华永道报告:三波自动化浪潮将依次出现,人类工作将显著受到影响
- mysql get global_getdata table表格数据join mysql方法
- 树莓派从零开始学习记录
- vs程序 C++语言的给textbox加限制
- win7没有权限使用计算机的,Win7提示你可能没有权限使用网络资源|未授予用户在此计算机解决方法...
- mac触控板 鼠标中键_如何在Mac的触控板上添加中键
- 光纤分布式声波传感DAS语音还原介绍
- c语言解一元一次方程(及一元高次方程)
- Windows安装Minikube(k8s体验)
- 【Day3.7】建兴海鲜酒家,味道还很不错
- BookKeeper AutoRecovery
- 【密码学】DES加解密原理及其Java实现算法
- 前端jQuery获取当前日期及前一周或者后一周的日期
- MLDonkey命令手册
- ZeroTier-One配置moon心得