001 问题 在项目中会遇到上传图像体验不好例如图片大上传慢,用户等待很长时间,或者暴力压缩导致图片质量下降 影响后台审核
002 个人解决案:判断图片是否超过预设大小,在 一个while循环中进行压缩判断直到满足预设大小才上传到服务器 代码如下:
BOOL flag = [self testImgeData:imgData andImage:first];
//第一次判断是否需要压缩 800kb
while (flag) {
//内循环:压缩图片 直到flag为false 才跳出循环
UIImage* lastImage = [self scaleImage:first toScale:0.65];
NSData* imgData = UIImageJPEGRepresentation(lastImage, 1);
flag = [self testImgeData:imgData andImage:lastImage];
first = lastImage;
}
判断预设大小:NSData 的length是bytes格式需要进行除以1024进行单位转换
- (BOOL)testImgeData:(NSData *)data andImage:(UIImage *)image{
double dataLength = [data length] * 1.0;
NSArray *typeArray = @[@"bytes",@"KB",@"MB",@"GB",@"TB",@"PB", @"EB",@"ZB",@"YB"];
NSInteger index = 0;
while (dataLength > 1024) {
dataLength /= 1024.0;
index ++;
}
NSString

项目中图像上传存在体验不佳问题,如图片大上传慢、暴力压缩致质量下降影响审核。个人解决方案是判断图片是否超预设大小,在while循环中压缩判断,满足条件再上传。还介绍了判断预设大小、等比压缩算法及保存到相册查看清晰度等内容。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



