//根據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,并可 根據自己的實際使用場景,設置壓縮系數,進一步降低圖片數據量大小.