0

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

我已经指出了??? ??? ??? ???我遇到问题的地方。

4

2 回答 2

0

只要您对图像质量下降没问题(如果是照片应该没问题),那么您想按照以下方式进行操作。0.8 代表 80% 的压缩质量。

file = [PFFile fileWithData:UIImageJPEGRepresentation(self.profilePic.image, 0.8f)];

如果您不能失去质量,请按照以下方式进行。

file = [PFFile fileWithData:UIImagePNGRepresentation(self.profilePic.image)];

有关各种格式的更详细比较,请参阅此问题。

于 2014-09-04T14:14:19.447 回答
0

所以,我有一个答案,但我只是不相信这是最聪明的方法。UIImageJPEGRepresentation当我对图像编码一无所知时,我也很担心开始使用诸如(它甚至是一个功能吗?)之类的功能。

file = [PFFile fileWithData:UIImageJPEGRepresentation(self.profilePic.image, 0.8f)];
于 2014-09-04T14:04:03.677 回答