iOS压缩图片大小
2016-07-12 14:49
405 查看
//图片伸缩到指定大小 - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize forImage:(UIImage *)originImage { UIImage *sourceImage = originImage;// 原图 UIImage *newImage = nil;// 新图 // 原图尺寸 CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = targetSize.width;// 目标宽度 CGFloat targetHeight = targetSize.height;// 目标高度 // 伸缩参数初始化 CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0); if (CGSizeEqualToSize(imageSize, targetSize) == 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(targetSize); // 目标尺寸 CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width= scaledWidth; thumbnailRect.size.height = scaledHeight; [sourceImage drawInRect:thumbnailRect]; // 新图片 newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil) NSLog(@"could not scale image"); // 退出位图上下文 UIGraphicsEndImageContext(); return newImage; }
相关文章推荐
- -force_load配置framework路径
- iOS动画(Core Animation)使用
- ios开发原生的扫描二维码的实现以及限制扫描区域rectOfInterest遇到的一些坑
- ios开发原生的扫描二维码的实现以及限制扫描区域rectOfInterest遇到的一些坑
- iOS开发_block的简单使用
- iOS照片框架
- Ios使用正则表达式验证手机号码
- IOS设备兼容Ipv5/ipv6访问Ipv4服务器
- iOS利用QLPreviewController显示PDF,word,execl,txt等格式的文件
- ACM--枚举暴力--HDOJ 1017--A Mathematical Curiosity--水
- iOS滑动卡片动画
- 极光推送iOS SDK教程
- 极光推送iOS SDK教程
- IOS手势解锁详解
- 开发IOS SDK注意事项
- iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch
- iOS 宏(define)与常量(const)的正确使用
- 正则表达式在ios中应用
- iOS实现透明度渐变和颜色渐变的view
- iOS判断第三方SDK是否含有广告位