调整图片尺寸和大小

/**

* 调整图片尺寸和大小

*

* @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基础(十八)——调整图片尺寸和大小相关推荐

  1. php图片长宽处理,用php调整图片宽高 | 学步园

    /** * 改变图片的宽高 * * @author flynetcn (2009-12-16) * * @param string $img_src 原图片的存放地址或url * @param str ...

  2. 指纹图片调对比度 c语言,手动调整图片打印深浅(亮度/对比度 Windows OS)

    文档标题:手动调整图片打印深浅(亮度/对比度 Windows OS) 文档代码:CHN-FP0548-1 最近修改日期:2020年11月19日 手动调整图片打印深浅(亮度/对比度 Windows OS ...

  3. Python基础(十八): 类和对象以及它们的属性

    一.类 最简单的经典类结构 class 类名:pass 复制代码 1.定义一个类 class Money:pass 复制代码 类名规范: 驼峰命名法, 并且首字母大写 2.实例化一个对象 创建一个对象 ...

  4. Mysql基础(十八):主从架构

    目录 1.MySQL的主从复制架构 2.主从复制架构的意义? 2.1.高可用架构 2.2.读写分离架构 从库的应用场景? 3.MySQL实现主从复制的工作原理 4.如何为MySQL搭建一套主从复制架构 ...

  5. python_fullstack基础(十八)-并发编程

    并发编程 一.进程 1.理论背景 ①操作系统背景 手工操作-穿孔卡片  原理:用户独占计算机,CPU等待手工操作,资源利用和CPU利用效率极低 批处理-磁带处理.批处理系统  原理:主机与输入机之间增 ...

  6. matlab 改变图片的长宽,Matlab怎么调整图片的大小,使它成为特定的长宽

    满意答案 whymhm 推荐于 2017.12.15 采纳率:53%    等级:6 已帮助:2557人 一般而言,只需对目标图像进行图形句柄对象和坐标轴句柄对象进行操作即可.MATLAB中分别用gc ...

  7. three.js学习笔记(十八)——调整材质

    介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...

  8. 少年碎碎念:那年我十八,心里满是她

      "无论是现在还是将来,无论是天涯还是海角,无论你是否喜欢我,无论你是否嫁我,我,xxx,会一直喜欢你."--那年高三,是我先追她.有小姑娘骂得我狗血淋头,有小伙子约我操场干架. ...

  9. MarkDown内如何调整图片的尺寸及对齐方式?

    前言 想发布已经写好的MarkDown文档,需要手动调整的地方只有图片.原因是默认插入的图片太大的话,图片会占满屏幕,导致浏览不便. 个人体验:常见的横屏情况下,一张图片不宜超过2/3屏幕高度,主体内 ...

最新文章

  1. android 获取控件高度_安卓开发入门教程UI控件_ImageView
  2. fdtd算法的matlab程序,FDTD算法的Matlab程序
  3. js \n直接显示字符串_显示N个字符的最短时间
  4. 10 本大数据高分书籍,收好给头脑充充电吧~
  5. python编程基础张勇答案_Python程序开发、编程基础阶段试题及答案
  6. 普华永道报告:三波自动化浪潮将依次出现,人类工作将显著受到影响
  7. mysql get global_getdata table表格数据join mysql方法
  8. 树莓派从零开始学习记录
  9. vs程序 C++语言的给textbox加限制
  10. win7没有权限使用计算机的,Win7提示你可能没有权限使用网络资源|未授予用户在此计算机解决方法...
  11. mac触控板 鼠标中键_如何在Mac的触控板上添加中键
  12. 光纤分布式声波传感DAS语音还原介绍
  13. c语言解一元一次方程(及一元高次方程)
  14. Windows安装Minikube(k8s体验)
  15. 【Day3.7】建兴海鲜酒家,味道还很不错
  16. BookKeeper AutoRecovery
  17. 【密码学】DES加解密原理及其Java实现算法
  18. 前端jQuery获取当前日期及前一周或者后一周的日期
  19. MLDonkey命令手册
  20. ZeroTier-One配置moon心得

热门文章

  1. QT小游戏(五子棋)
  2. react ant-design自定义图标
  3. 阿里云服务器购买教程(新手指南)
  4. CSS---px rpx pt em rem四种单位总结
  5. 第三方应用微信登录接口
  6. Weights Biases的使用
  7. 云帮平台的设计架构详解
  8. 已经过去2周了,你感觉怎么样?
  9. 【进阶版】 机器学习之主成分分析(PCA)、MDS算法、核化线性降维 (16)
  10. 解决WPS每点击一下保存,就会出现tmp文件