PFImageView
及其.file
属性及其对应的-loadInBackground
方法非常有用。我无法弄清楚如何“走另一条路”,即从新图像中获取PFFile
参考:
RA_MyAccount.h(摘录)
@property (weak, nonatomic) IBOutlet PFImageView *profilePic;
-(IBAction)saveButtonTapped:(id)sender;
RA_MyAccount.m(摘录)
-(void)setLocalImageToPFImageView:(UIImage *)localImage
{
self.profilePic.image = localImage
}
-(IBAction)saveButtonTapped:(id)sender
{
PFUser *cUser = [PFUser currentUser];
// Get the PFFile reference for the new image
PFFile *file;
file = ??? ??? ??? ???
// Set
cUser[PF_USER_PIC] = file;
[cUser saveInBackgroundWithBlock:
^(BOOL succeeded, NSError *error){
[self performSegueWithIdentifier:@"unwindtotabviewsegue" sender:self];
}];
}
我已经用??? ??? ??? ???
表示我遇到了问题。
答案 0 :(得分:0)
所以,我有一个答案,但我不相信它是最聪明的方式。当我对图像编码一无所知时,我也很担心开始使用像UIImageJPEGRepresentation
这样的函数(它甚至是函数吗?)。
file = [PFFile fileWithData:UIImageJPEGRepresentation(self.profilePic.image, 0.8f)];
答案 1 :(得分:0)
只要您对图像质量不佳(如果是照片就应该没问题),那么您希望以下列方式进行操作。 0.8代表80%的压缩质量。
file = [PFFile fileWithData:UIImageJPEGRepresentation(self.profilePic.image, 0.8f)];
如果你不能失去品质,那就按照以下方式做。
file = [PFFile fileWithData:UIImagePNGRepresentation(self.profilePic.image)];
有关各种格式的详细比较,请参阅this question。