国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解IOS開發中圖片上傳時兩種圖片壓縮方式的比較

2020-07-26 02:53:53
字體:
來源:轉載
供稿:網友

IOS 圖片上傳時兩種圖片壓縮方式的比較

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

上傳圖片的正確方式:上傳頭像到服務器一般是將圖片NSData上傳到服務器,服務器返回一個圖片NSString地址,之后再將NSString的路徑轉為url并通過url請求去更新用戶頭像(用戶頭像此時更新的便是NSString)

代碼為:

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

現在來介紹一下:UIImageJPEGRepresntation 和 UIImagePNGRepresontation的區別

在Iphone上有兩種讀取圖片數據的簡單方法: UIImageJPEGRepresentation和UIImagePNGRepresentation. 

UIImageJPEGRepresntation:

UIImageJPEGRepresentation方法在耗時上比較少 而UIImagePNGRepresentation耗時操作時間比較長

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

使用UIImagePNGRepresentation取得照片時候可能會造成卡頓的現象

在Iphone上有兩種讀取圖片數據的簡單方法: UIImageJPEGRepresentation和UIImagePNGRepresentation.

UIImagePNGRepresontation:

UIImageJPEGRepresentation函數需要兩個參數:圖片的引用和壓縮系數.而UIImagePNGRepresentation只需要圖片引用作為參數.通過在實際使用過程中,比較發現: UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片數據量大很多.

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

譬如,剛才拍攝的圖片, 通過調用UIImageJPEGRepresentation(UIImage* image, 1.0)讀取數據時,返回的數據大小為140KB,但更改壓縮系數后,通過調用UIImageJPEGRepresentation(UIImage* image, 0.5)讀取數據時,返回的數據大小只有11KB多,大大壓縮了圖片的數據量 ,而且從視角角度看,圖片的質量并沒有明顯的降低.因此,在讀取圖片數據內容時,建議優先使用UIImageJPEGRepresentation,并可根據自己的實際使用場景,設置壓縮系數,進一步降低圖片數據量大小.

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪江市| 桦南县| 平凉市| 怀来县| 五指山市| 慈溪市| 苗栗县| 成都市| 梅州市| 云林县| 惠州市| 绥阳县| 南和县| 安平县| 锡林浩特市| 个旧市| 航空| 滦平县| 馆陶县| 天祝| 贵定县| 绥江县| 宁城县| 双辽市| 阳曲县| 苍溪县| 南平市| 伊宁县| 文登市| 错那县| 房山区| 吴桥县| 台安县| 西城区| 保定市| 通江县| 濉溪县| 岫岩| 卓资县| 东源县| 塘沽区|