oc照片库图片的选择处理

#import "MainViewController.h"


#define kImageFileName @"image.png"


@interface MainViewController ()


@property (weak, nonatomic) UIButton *button;


@end


@implementation MainViewController


#pragma mark - 实例化视图

- (void)loadView

{

    // 1. 实例化根视图,视图实例化时默认是透明

    self.view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];

    

    // 2. 创建一个按钮,等下选择图片后,在按钮中显示选择的图片

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    

    [button setFrame:CGRectMake(60, 130, 200, 200)];

    [button setTitle:@"选择照片" forState:UIControlStateNormal];

    [button setBackgroundColor:[UIColor lightGrayColor]];

    

    [self.view addSubview:button];

    self.button = button;

    

    // 按钮监听方法

    [button addTarget:self action:@selector(clickButton) forControlEvents:UIControlEventTouchUpInside];

}


- (void)viewDidLoad

{

    

    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    // 需要找出沙盒路径

    NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    // 设置保存文件名称

    NSString *path = [documents[0] stringByAppendingPathComponent:kImageFileName];

    

    UIImage *image = [UIImage imageWithContentsOfFile:path];

    

    [self.button setImage:image forState:UIControlStateNormal];

}


#pragma mark - 按钮点击方法

- (void)clickButton

{

    // 显示照片选择控制器

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];

    

    // 1) 照片源

    // a 照片库[用相机拍摄以及用电脑同步的]

    // b 保存的图像[用相机拍摄的]

    // c 照相机

    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

    // 2) 是否允许编辑

    [imagePicker setAllowsEditing:YES];

    

    // 3) 设置代理

    [imagePicker setDelegate:self];

    

    // 4) 显示照片选择控制器,显示modal窗口

    [self presentViewController:imagePicker animated:YES completion:nil];

}


#pragma mark - UIImagePicker代理方法

#pragma mark 照片选择完成的代理方法,照片信息保存在info参数中

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    NSLog(@"info %@", info);

    // 获取编辑后的照片

    UIImage *image = info[@"UIImagePickerControllerEditedImage"];

    

    // 设置照片

    [self.button setImage:image forState:UIControlStateNormal];

    

    // 关闭照片选择器

    // 注意:使用照片选择器选择的图片,只是保存在内存中

    // 如果需要再次使用,选择照片后,需要做保存处理

    [self dismissViewControllerAnimated:YES completion:^{

        

        // 要保存照片需要NSData做中转

        NSData *imageData = UIImagePNGRepresentation(image);

        

        // 需要找出沙盒路径

        NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        // 设置保存文件名称

        NSString *path = [documents[0] stringByAppendingPathComponent:kImageFileName];

        // 保存文件

        NSLog(@"%@", path);

        [imageData writeToFile:path atomically:YES];

    }];

}


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值