zoukankan      html  css  js  c++  java
  • Save Image to UserDefaults(用NSUserDefaults保存图片)

    //save to Userdefaults
        
        NSData *imageData;
        // create NSData-object from image
        imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
        // save NSData-object to UserDefaults
        [[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
        
        //load imag from Userdefaults
        NSData *imageData;
        imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
        
        if(imageData != nil)
        {
            yourUIImage = [NSKeyedUnarchiver unarchiveObjectWithData: imageData];
        }
        
        
        save
        
        //Save to PNG
        NSData *dataObj = UIImagePNGRepresentation(self);
        [dataObj writeToFile:path atomically:NO];
        
        //Save to JPG
        NSData *dataObj = UIImageJPEGRepresentation(self, 90);
        [dataObj writeToFile:path atomically:NO];
        
        
        Demo class:
        
        - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
        {
            if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
            {
                NSData *imageData;
                UIImage *theImage;
                imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
                if(imageData != nil)
                {
                        theImage = [NSKeyedUnarchiver unarchiveObjectWithData: imageData];    
                }    
            }
            return self;
        }
        
        - (IBAction)openPicker
        {
            if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])    
            {
                UIImagePickerController *picker;
                picker = [[UIImagePickerController alloc]init];
                picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;        
                picker.allowsImageEditing = YES;            
                picker.delegate = self;
                [self presentModalViewController:picker animated:YES];
            }
        }

        - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
        {

            [self useImage:image];    
            [[picker parentViewController] dismissModalViewControllerAnimated:YES];
        }
        
        -(void)useImage:(UIImage *)theImage
        {

            pickerImage.image = theImage;
            NSData *imageData;
            imageData = [NSKeyedArchiver archivedDataWithRootObject:theImage];
            [[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
        }

  • 相关阅读:
    通过PDB文件实现非嵌入式的c++反射
    在c++中实现反射的初步想法
    对比特币相关的一些技术细节的补充
    初窥比特币
    根据一个坐标查找其所属区域的一些优化想法
    go两种数据类型的区别、数据类型和操作符、常量、变量声明
    go的相关包time、os、rand、fmt
    go语言的特性
    结构体
    defer、panic、recover
  • 原文地址:https://www.cnblogs.com/supper-Ho/p/6556381.html
Copyright © 2011-2022 走看看