【发布时间】:2015-07-28 16:05:01
【问题描述】:
我正在尝试在发送到服务器之前裁剪图像,但我遇到了问题。
我正在尝试这样做:
imageUploadReq.photo = [self encodeToBase64String:[UIImage imageWithData:UIImageJPEGRepresentation(fileData, 0.07f)]];
但 Xcode 抱怨“将 NSData * 传递给参数类型 UIImage 的指针类型不兼容”。我尝试投射它,但它也不起作用。
代码如下:
- (void)uploadPhoto {
NSData *fileData;
if (self.image != nil) {
UIImage *newImage = [self resizeImage:self.image toWidth:320.0f andHeight:480.0f];
fileData = UIImageJPEGRepresentation(newImage, 0.07f);
}
WUTModelImageUploadReq *imageUploadReq = [[WUTModelImageUploadReq alloc]init];
// I'm trying to set the first parameter of UIImageJPEGRepresentation to fileData
imageUploadReq.photo = [self encodeToBase64String:[UIImage imageWithData:UIImageJPEGRepresentation(self.viewControllerPost.imageForPost, 0.07f)]];
imageUploadReq.extension = @"jpg";
void (^wsSuccessHandler)(AFHTTPRequestOperation *operation, NSDictionary* responseObject) = ^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"Pull Feed responseObject %@",responseObject);
NSError *error;
WUTModelPostImageResponse *wsResponse = [[WUTModelPostImageResponse alloc]initWithDictionary:(NSDictionary *)responseObject error:&error];
if (error) {
errorMessage = @"Failure to upload image.";
[self postExecuteFail];
}else{
if (wsResponse.success) {
WUTModelImage *imageTemp = [wsResponse.data firstObject];
[postItem setObject:imageTemp.photo forKey:@"photo"];
[self uploadPostFeed];
}else{
errorMessage = @"Failure to upload image.";
[self postExecuteFail];
}
}
};
void (^wsErrorHandler)(AFHTTPRequestOperation *operation, NSError *error) = ^(AFHTTPRequestOperation *operation, NSError *error){
if ([error.localizedDescription rangeOfString:@"401"].location != NSNotFound)
errorMessage = @"It seems that your login session get expire, Please relogin after logged out.";
else
errorMessage = @"Failure to upload image.";
[self postExecuteFail];
};
AFHTTPRequestOperation *op = [WUTCommonWebServices WebServicePostCallWithAccessTokenForEndPoint:WS_UploadImage WithJson:imageUploadReq ForSuccess:wsSuccessHandler ForFailure:wsErrorHandler];
[op start];
}
【问题讨论】:
-
什么是
WUTModelImageUploadReq,尤其是它的属性photo?encodeToBase64String:是什么? -
你在哪里裁剪图像?
-
我在这里裁剪
UIImage *newImage = [self resizeImage:self.image toWidth:320.0f andHeight:480.0f]; -
@Larme Photo 是保存图像的属性。
-
目前还不清楚。照片是 UIImage 吗?一个NSString?
encodeToBase64String:的定义是什么?
标签: ios objective-c uiimage uiimagejpegrepresentation