欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解IOS開(kāi)發(fā)中圖片上傳時(shí)兩種圖片壓縮方式的比較

 更新時(shí)間:2017年03月15日 09:24:07   投稿:lqh  
這篇文章主要介紹了IOS開(kāi)發(fā)中圖片上傳時(shí)兩種圖片壓縮方式的比較,需要的朋友可以參考下

IOS 圖片上傳時(shí)兩種圖片壓縮方式的比較

上傳圖片不全面的想法:把圖片保存到本地,然后把圖片的路徑上傳到服務(wù)器,最后又由服務(wù)器把路徑返回,這種方式不具有擴(kuò)展性,如果用戶(hù)換了手機(jī),那么新手機(jī)的沙盒中就沒(méi)有服務(wù)器返回的圖片路徑了,此時(shí)就無(wú)法獲取之前已經(jīng)上傳了的頭像了,在項(xiàng)目中明顯的不可行。

上傳圖片的正確方式:上傳頭像到服務(wù)器一般是將圖片NSData上傳到服務(wù)器,服務(wù)器返回一個(gè)圖片NSString地址,之后再將NSString的路徑轉(zhuǎn)為url并通過(guò)url請(qǐng)求去更新用戶(hù)頭像(用戶(hù)頭像此時(shí)更新的便是NSString)

代碼為:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
 // 設(shè)置請(qǐng)求格式
 manager.requestSerializer = [AFJSONRequestSerializer serializer];
 // 設(shè)置返回格式
 manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:[NSString stringWithFormat:@"%@%@", XLImageServerHost, functionName] parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
/////傳的圖片數(shù)據(jù)放這里
 NSData *eachImgData = UIImageJPEGRepresentation(image, 0.5);
 [formData appendPartWithFileData :eachImgData name : @"upload" fileName : @"picture.jpg" mimeType : @"image/jpeg" ];
 } success:^(AFHTTPRequestOperation *operation, id responseObject) {
 ///請(qǐng)求成功
 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
 ///請(qǐng)求失敗
 }];

現(xiàn)在來(lái)介紹一下:UIImageJPEGRepresntation 和 UIImagePNGRepresontation的區(qū)別

在Iphone上有兩種讀取圖片數(shù)據(jù)的簡(jiǎn)單方法: UIImageJPEGRepresentation和UIImagePNGRepresentation. 

UIImageJPEGRepresntation:

UIImageJPEGRepresentation方法在耗時(shí)上比較少 而UIImagePNGRepresentation耗時(shí)操作時(shí)間比較長(zhǎng)

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

使用UIImagePNGRepresentation取得照片時(shí)候可能會(huì)造成卡頓的現(xiàn)象

在Iphone上有兩種讀取圖片數(shù)據(jù)的簡(jiǎn)單方法: UIImageJPEGRepresentation和UIImagePNGRepresentation.

UIImagePNGRepresontation:

UIImageJPEGRepresentation函數(shù)需要兩個(gè)參數(shù):圖片的引用和壓縮系數(shù).而UIImagePNGRepresentation只需要圖片引用作為參數(shù).通過(guò)在實(shí)際使用過(guò)程中,比較發(fā)現(xiàn): UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片數(shù)據(jù)量大很多.

譬如,同樣是讀取攝像頭拍攝的同樣景色的照片, UIImagePNGRepresentation()返回的數(shù)據(jù)量大小為199K ,而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的數(shù)據(jù)量大小只為140KB,比前者少了50多KB.如果對(duì)圖片的清晰度要求不高,還可以通過(guò)設(shè)置 UIImageJPEGRepresentation函數(shù)的第二個(gè)參數(shù),大幅度降低圖片數(shù)據(jù)量.

譬如,剛才拍攝的圖片, 通過(guò)調(diào)用UIImageJPEGRepresentation(UIImage* image, 1.0)讀取數(shù)據(jù)時(shí),返回的數(shù)據(jù)大小為140KB,但更改壓縮系數(shù)后,通過(guò)調(diào)用UIImageJPEGRepresentation(UIImage* image, 0.5)讀取數(shù)據(jù)時(shí),返回的數(shù)據(jù)大小只有11KB多,大大壓縮了圖片的數(shù)據(jù)量 ,而且從視角角度看,圖片的質(zhì)量并沒(méi)有明顯的降低.因此,在讀取圖片數(shù)據(jù)內(nèi)容時(shí),建議優(yōu)先使用UIImageJPEGRepresentation,并可根據(jù)自己的實(shí)際使用場(chǎng)景,設(shè)置壓縮系數(shù),進(jìn)一步降低圖片數(shù)據(jù)量大小.

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論