- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(size);
// 绘制改变大小的图片
[img drawInRect:CGRectMake(,, size.width, size.height)];
// 从当前context中创建一个改变大小后的图片
UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
//返回新的改变大小后的图片
return scaledImage;
}

压缩成指定大小代码

等比压缩

等比例压缩
-(UIImage *) imageCompressForSize:(UIImage *)sourceImage targetSize:(CGSize)size{
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = size.width;
CGFloat targetHeight = size.height;
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0, 0.0);
if(CGSizeEqualToSize(imageSize, size) == NO){
CGFloat widthFactor = targetWidth / width;
CGFloat heightFactor = targetHeight / height;
if(widthFactor > heightFactor){
scaleFactor = widthFactor;
}
else{
scaleFactor = heightFactor;
}
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
if(widthFactor > heightFactor){
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
}else if(widthFactor < heightFactor){
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
} UIGraphicsBeginImageContext(size); CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil){
NSLog(@"scale image fail");
} UIGraphicsEndImageContext(); return newImage; } -(UIImage *) imageCompressForWidth:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth{
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = defineWidth;
CGFloat targetHeight = height / (width / targetWidth);
CGSize size = CGSizeMake(targetWidth, targetHeight);
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0, 0.0);
if(CGSizeEqualToSize(imageSize, size) == NO){
CGFloat widthFactor = targetWidth / width;
CGFloat heightFactor = targetHeight / height;
if(widthFactor > heightFactor){
scaleFactor = widthFactor;
}
else{
scaleFactor = heightFactor;
}
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
if(widthFactor > heightFactor){
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
}else if(widthFactor < heightFactor){
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
}
UIGraphicsBeginImageContext(size);
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight; [sourceImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext();
if(newImage == nil){
NSLog(@"scale image fail");
} UIGraphicsEndImageContext();
return newImage;
}

最新文章

  1. Android 组件和进程的一些关系
  2. java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)
  3. SqlServer 临时表 与 表变量(转)
  4. VHDL基本常识
  5. Unity3d 使用NPOI读写Excel 遇到的问题
  6. sjtu1591 Count On Tree
  7. [转]从数据库中导出用友U8的现存量数据到Excel表
  8. WEB ICON 的探讨
  9. HtmlAgilityPack + Fizzler
  10. Tampermonkey还你一个干净整洁的上网体验
  11. 解析查询 queryString 请求参数的函数
  12. CMD下进入MYSQL的命令
  13. IDEA从SVN中导入多模块项目
  14. 转载 .Net多线程编程—任务Task https://www.cnblogs.com/hdwgxz/p/6258014.html
  15. js 时间戳和日期互转
  16. 无法定位序数****于动态链接库LIBEAY32.dll上
  17. POJ2983 Is the Information Reliable?
  18. 2018-2019 Exp2 后门原理与实践
  19. No.110_第三次团队会议
  20. 201621123010《Java程序设计》第8周学习总结

热门文章

  1. Uva 11324 最大团
  2. python学习之安装模块
  3. winform 传值,构造函数等
  4. jQuery 添加元素
  5. [问题2014A06] 复旦高等代数 I(14级)每周一题(第八教学周)
  6. 利用win7系统自带的dos命令把笔记本无线网卡当无线路由器(无线AP发射器)
  7. web.xml配置详情 - 简要介绍
  8. Python编程练习题
  9. CSSOM之getComputedStyle,currentStyle,getPropertyValue,getAttribute
  10. JavaScript学习笔记及知识点整理_2