将PFImageView的image属性设置为本地映像,然后使用PFFile更新Parse数据库

时间:2014-09-04 14:00:31

标签: parse-platform pffile

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];
     }];
}

我已经用??? ??? ??? ???表示我遇到了问题。

2 个答案:

答案 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