图片压缩上传

//根据UserId和当前时间生成图片名
+ (NSString *)getCreateImageNameWithUserId:(NSString *)userId {
    if (userId) {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:TIME_FORMAT];
        NSString *dateTime = [formatter stringFromDate:[NSDate date]];
        NSString *imageName = [[userId stringByAppendingString:@"_"]stringByAppendingString:dateTime];
        return [imageName stringByAppendingFormat:@".jpg"];
    } else {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:TIME_FORMAT];
        NSString *dateTime = [formatter stringFromDate:[NSDate date]];
        NSString *imageName = dateTime;
        return [imageName stringByAppendingFormat:@".jpg"];
    }
}

//以事件为图片名字
NSString *imageName = [self getCreateImageNameWithUserId:userId];

//参数:UIImage和压缩系数,其中压缩系数越小,压缩的图片数据量越小
//图片按0.75的质量压缩->转换为NSData
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:imageName] , 0.75);

同样是读取摄像头拍摄的同样景色的照片,通过调用UIImageJPEGRepresentation(UIImage* image, 1.0)读取数据时,返回的数据大小为140KB
但更改压缩系数后,通过调用UIImageJPEGRepresentation(UIImage* image, 0.5)读取数据时,返回的数据大小只有11KB多,大大压缩了图片的数据量
而且从视角角度看,图片的质量并没有明显的降低.因此,在读取图片数据内容时,建议优先使用UIImageJPEGRepresentation,并可 根据自己的实际使用场景,设置压缩系数,进一步降低图片数据量大小.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容