700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java 图片压缩 base64 图片的尺寸 大小压缩 和转化为base64

java 图片压缩 base64 图片的尺寸 大小压缩 和转化为base64

时间:2021-03-16 19:29:51

相关推荐

java 图片压缩 base64 图片的尺寸 大小压缩 和转化为base64

//转化为jpg图片并压缩方法:

UIImageJPEGRepresentation(image, compression);

/**

压图片质量

@param image image

*/

- (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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。