2

UIImageview を NSData に変換し、バイナリ データとして保存しました。しかし、バイナリデータを NSData に取得し、それを UIImageview に変換する方法がわかりません

私のコードは以下です

画像をバイナリデータとして保存----

-(void) save
{
    UIImage *img = [UIImage imageNamed:@"back2.png"];
    NSData *dataObj =UIImagePNGRepresentation(img);
    NotesDetails *notesDetails = (NotesDetails *) [NSEntityDescription insertNewObjectForEntityForName:@"NotesDetails" inManagedObjectContext:managedObjectContext];
 notesDetails.imageData=dataObj;
    NSLog(@"NotesDetails: %@",notesDetails);
    NSError *error;
    if (![managedObjectContext save:&error])
    {

    }
}

画像取得------

-(void)viewDidLoad
{
    NSFetchRequest *fectchreq = [[NSFetchRequest alloc] init];
    NSEntityDescription *entitydes = [NSEntityDescription entityForName:@"NotesDetails"
                                                 inManagedObjectContext:self.managedObjectContext];
    [fectchreq setEntity:entitydes];
    NSSortDescriptor *sortdes = [[NSSortDescriptor alloc] initWithKey:@"notesTime" ascending:YES];
    NSArray *sortdesarray = [[NSArray alloc] initWithObjects:sortdes, nil];
    [fectchreq setSortDescriptors:sortdesarray];
    NSError *error;
    NSMutableArray *storeddata = [[self.managedObjectContext executeFetchRequest:fectchreq error:&error] mutableCopy];

    if ([storeddata count] > 0)
    {
        for (NotesDetails *sc in storeddata)
        {
            imgFromDb=[NSData dataWithData:[@"%@",sc.imageData]];
        }
    }
    NSLog(@"Image : %@",imgFromDb);
    UIImageView *dbImage=[[UIImageView alloc]initWithFrame:CGRectMake(80,20,90,90)];
    dbImage.image=[UIImage imageWithData:imgFromDb];

    [NoteDetails addSubview:dbImage];
}
4

1 に答える 1

3

NSKeyedUnarchiver を使用できます。

imgFromDb= [NSKeyedUnarchiver unarchiveObjectWithData: sc.imageData];

また、UIImagePNGRepresentation() と比較したい場合は、NSKeyedArchiver で反対 (オブジェクトからデータ) を実行できます。
また、これを行う他の方法もあります。たとえば、次のとおりです。

imgFromDb= [UIImage imageWithData: sc.imageData];
于 2012-12-22T13:52:21.827 に答える