iOS 图片大小压缩 图片尺寸处理
2016-04-01 09:23
691 查看
图片的压缩其实是俩概念,
1、是 “压” 文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降,
2、是 “缩” 文件的尺寸变小,也就是像素数减少。长宽尺寸变小,文件体积同样会减小。
这个 UIImageJPEGRepresentation(image, 0.0),是1的功能。
这个 [sourceImage drawInRect:CGRectMake(0,0,targetWidth, targetHeight)] 是2的功能。
所以,这俩你得结合使用来满足需求,不然你一味的用1,导致,图片模糊的不行,但是尺寸还是很大。
#pragma mark- 缩放图片 对大小压缩
+(UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
//设置图片尺寸
UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//对图片包得大小进行压缩
NSData *imageData = UIImageJPEGRepresentation(scaledImage,0.0001);
UIImage *m_selectImage = [UIImage imageWithData:imageData];
return m_selectImage;
}
//这样调用即可
UIImage* original = [info objectForKey:UIImagePickerControllerOriginalImage];
original = [HZSInstances scaleImage:original toScale:0.4];
1、是 “压” 文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降,
2、是 “缩” 文件的尺寸变小,也就是像素数减少。长宽尺寸变小,文件体积同样会减小。
这个 UIImageJPEGRepresentation(image, 0.0),是1的功能。
这个 [sourceImage drawInRect:CGRectMake(0,0,targetWidth, targetHeight)] 是2的功能。
所以,这俩你得结合使用来满足需求,不然你一味的用1,导致,图片模糊的不行,但是尺寸还是很大。
#pragma mark- 缩放图片 对大小压缩
+(UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
//设置图片尺寸
UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//对图片包得大小进行压缩
NSData *imageData = UIImageJPEGRepresentation(scaledImage,0.0001);
UIImage *m_selectImage = [UIImage imageWithData:imageData];
return m_selectImage;
}
//这样调用即可
UIImage* original = [info objectForKey:UIImagePickerControllerOriginalImage];
original = [HZSInstances scaleImage:original toScale:0.4];
相关文章推荐
- 【代码笔记】iOS-检测手机翻转
- iOS中堆和栈的区别
- iOS 自定义弹出视图 几行代码可以自定义任何弹出视图
- iOS开发:strong属性与weak属性的区别
- iOS 后台线程
- 【iOS】idfa查找
- iOS 截屏并保存在本地
- iOS状态栏颜色修改
- AutoLayout三个重要的概念
- 适配iPad和iPhone
- CocoaPods + 自定义静态库 -> 多工程连编
- IOS博客项目搭建-09-OAuth02授权
- ios逆向小试牛刀之操作手记
- iOS开发之 [NSNull length]:unrecognized selector sent
- IOS开发探索(一):CocoalPods相关
- iOS - 自定义启动图
- iOS 对于block的理解
- IOS中 Block简介与用法(一)
- [置顶] block一点也不神秘————如何利用block进行回调
- iOS非常重要的 block回调