图片的尺寸 大小压缩 和转化为base64
2016-12-02 00:00
190 查看
//转化为jpg图片并压缩方法:
UIImageJPEGRepresentation(image, compression);
/**
压图片质量
@param image image
@return Data
*/
- (NSData *)zipImageWithImage:(UIImage *)image
{
if (!image) {
return nil;
}
CGFloat maxFileSize = 500*1024;
CGFloat compression = 0.9f;
NSData *compressedData = UIImageJPEGRepresentation(image, compression);
while ([compressedData length] > maxFileSize) {
compression *= 0.9;
compressedData = UIImageJPEGRepresentation([self compressImage:image newWidth:image.size.width*compression], compression);
}
return compressedData;
}
/**
* 等比缩放本图片大小
* @param newImageWidth 缩放后图片宽度,像素为单位
* @return self-->(image)
*/
- (UIImage *)compressImage:(UIImage *)image newWidth:(CGFloat)newImageWidth
{
if (!image) return nil;
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width = newImageWidth;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(CGSizeMake(width, height));
if (widthScale > heightScale) {
[image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , height)];
}
else {
[image drawInRect:CGRectMake(0, 0, width , imageHeight /widthScale)];
}
// 从当前context中创建一个改变大小后的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
return newImage;
}
UIImageJPEGRepresentation(image, compression);
/**
压图片质量
@param image image
@return Data
*/
- (NSData *)zipImageWithImage:(UIImage *)image
{
if (!image) {
return nil;
}
CGFloat maxFileSize = 500*1024;
CGFloat compression = 0.9f;
NSData *compressedData = UIImageJPEGRepresentation(image, compression);
while ([compressedData length] > maxFileSize) {
compression *= 0.9;
compressedData = UIImageJPEGRepresentation([self compressImage:image newWidth:image.size.width*compression], compression);
}
return compressedData;
}
/**
* 等比缩放本图片大小
* @param newImageWidth 缩放后图片宽度,像素为单位
* @return self-->(image)
*/
- (UIImage *)compressImage:(UIImage *)image newWidth:(CGFloat)newImageWidth
{
if (!image) return nil;
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width = newImageWidth;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(CGSizeMake(width, height));
if (widthScale > heightScale) {
[image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , height)];
}
else {
[image drawInRect:CGRectMake(0, 0, width , imageHeight /widthScale)];
}
// 从当前context中创建一个改变大小后的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
return newImage;
}
相关文章推荐
- iOS 图片大小压缩 图片尺寸处理
- 有关于图片压缩大小--尺寸裁剪 和 压缩系数
- 巧用isee“压缩”限制图片的文件大小及其尺寸
- Linux系统下批量压缩图片尺寸大小的方法
- iOS 图片大小压缩 图片尺寸处理
- 网页图片的压缩——保持尺寸不变,减小图片大小
- PHP 实现等比压缩图片尺寸和大小实例代码
- 图片压缩的两种形式(压缩到指定尺寸和压缩到指定大小)
- iOS上传照片:图片尺寸压缩,上传时大小压缩,QBImagePickerController多选照片出现的问题
- 图片压缩到规定大小和规定尺寸之内
- 图片转base64并压缩大小
- js压缩上传的图片,并转化为base64字符串传输
- swift如何压缩图片到指定大小以内,尺寸和体积双压缩
- 压缩图片大小尺寸
- canvas实现图片尺寸等比压缩并转换为base64字符串
- 图片压缩——压尺寸、压大小
- 图片压缩到指定尺寸和大小
- 前台js限制上传图片质量大小和尺寸
- 不同浏览器强行压缩图片尺寸的效果对比
- JS图片判断其尺寸大小