簡體   English   中英

將圖片網址編碼為NSData

[英]Encode an image URL to NSData

我想從URL拍攝圖像:

http://imgur.com/gallery/ihHQvP1

然后將其轉換為NSData,以便我可以將其解析到服務器。 服務器僅接受NSData,不接受圖像鏈接。 我從相機中得到以下信息:

 NSData *pictureData = UIImagePNGRepresentation([self scaleImage:activityImageView.image toSize:CGSizeMake(230, 230)]);

然后將其放入JSON格式以發送到服務器:

jsonPostBody= [NSString stringWithFormat:@"{\"activity_id\":\"%@\",\"user_id\":\"%@\",\"activity_title\":\"%@\",\"activity_category_id\":\"%@\",\"activity_description\":\"%@\",\"activity_image\":\"%@\",\"activity_begindate\":\"%@\",\"activity_enddate\":\"%@\", \"activity_time\":\"%@\", \"activity_email\":\"%@\",\"activity_city\":\"%@\",\"activity_where\":\"%@\",\"gotooffer_url\":\"%@\",\"latitude\":\"%@\",\"longitude\":\"%@\"}",[editActivityDict valueForKey:@"activity_id"],singletonObj.userID,title,selectedCategoryString,discription,[Base64 encode:pictureData],begindateConvert,enddateConvert,milatryTime,@"",city,where,entersite,singletonObj.singletonlatitude,singletonObj.singletonlogitude];
                    NSString *urlString=[NSString stringWithFormat:@"%@%@",ROOT_URL,EDIT_ACTIVITY];

如您所見,正文中發送的圖片變量為:

[Base64 encode:pictureData]

有任何想法嗎?

最簡單的方法是使用+[NSData dataWithContentsOfURL:options:error:]來獲取通過執行對該URL的GET請求作為NSData實例返回的數據。 但是,這會執行一個同步 Web請求,建議不要在主線程上執行該請求以避免避免阻塞UI。

為了避免在主線程上進行同步獲取,您可以使用GCD或操作隊列將相同的代碼放在后台線程中,但是最安全的方法是使用NSURLConnection / NSURLRequest ,如本響應所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM