Hướng dẫn xây dựng một máy ảnh đơn giản sử dụng UIImagePickerController

Máy ảnh rất phổ biến, camera trên di động là một máy ảnh tuyệt vời,  giúp bạn lưu khoảnh khắc tuyệt vời bên bạn bè và người thân. vậy nó hoạt động cơ bản ra sao?

Thiết kế đơn giản một máy ảnh như thế nào? sử dụng thư viện ảnh như thế nào… là những câu hỏi rất phổ biến !!!. Ở hướng dẫn này tôi sẽ giúp các bạn xây dựng một máy ảnh đơn giản bằng ngôn ngữ lập trình ios,đồng thời chọn ảnh ra xem ở màn hình lớn hơn.

Mục tiêu:

1. Tạo ra máy ảnh đơn giản. view ảnh chúng ta chụp được.

2. Truy cập thư viện ảnh chung và View ảnh sang màn hình lớn hơn.

Screen Shot 2016-04-26 at 10.31.46

 

 

Bắt đầu nào :

khởi tạo project mới .

Screen Shot 2016-04-26 at 10.35.47

Thiết kế giao diện:

Screen Shot 2016-04-26 at 10.37.47

 

Kéo imageView để xem ảnh ở chế độ lớn hơn, kéo vào 2 button ,button1 đặt tên chụp ảnh button2 đặt tên là chọn ảnh .khi click vào button chụp ảnh vào chế độ camera chụp ảnh. Khi click vào chế độ Chọn ảnh  vào thư viện ảnh nội bộ tìm ảnh để view.

Tạo kết nối :

vào newFile  chọn cocoa Touch class tạo class đặt tên pickerImageViewController dùng để quản lý Viewcontroller chúng ta vừa tạo ra.

Screen Shot 2016-04-26 at 10.41.43

kết nối class:

Screen Shot 2016-04-26 at 10.45.43

 

Tạo action để bắt sự kiện cho chọn ảnh và chụp ảnh:

Screen Shot 2016-04-26 at 10.47.28 Screen Shot 2016-04-26 at 10.47.52

 

Để trình chiếu ảnh tạo property cho imageView

Screen Shot 2016-04-26 at 10.50.14

 

Trong file :pickerImageViewController.h!

Sau khi kết nối ta được mã nguồn như sau:

@property (weak, nonatomic) IBOutlet UIImageView *imageView;
- (IBAction)chupAnh:(UIButton *)sender;
- (IBAction)chonAnh:(UIButton *)sender;

ok như thế là chúng ta đã thiết kế xong giao diện :

Xem thêm: Địa chỉ học lâp trình android ở đâu tốt

Mã nguồn:

Như chúng ta đã nói, chúng ta cần một đại biểu để đối phó với sự tương tác người dùng với máy ảnh hoặc thư viện ảnh. Để làm được điều đó chúng ta phải phù hợp với các giao thức UIImagePickerControllerDelegate.Ngoài ra, vì chúng tôi sẽ trình bày các máy ảnh (hoặc thư viện ảnh) kiểu modally, chúng ta phải thực hiện các giao thức UINavigationControllerDelegate. Thêm vào file.h.

@interface pickerImageViewController : UIViewController<UIImagePickerControllerDelegate ,UINavigationControllerDelegate>

 

- (IBAction)chupAnh:(UIButton *)sender {
    //tạo một đối tượng
    UIImagePickerController *picker=[[UIImagePickerController alloc] init];
    //đăng ký delegate
    picker.delegate=self;//nó lấy delegate khi ta đăng ký ban đầu.
    //đăng ký chỉnh sửa sẽ gọi đến màn hình chỉnh sửa và gọi đến phương thức didFinishPickingMediaWithInfo để lưu ảnh thay đổi .
    picker.allowsEditing=YES;
    //đăng ký truy cập ảnh từ camera
    picker.sourceType=UIImagePickerControllerSourceTypeCamera;
    //cho phép phủ picker lên view
    [self presentViewController:picker animated:YES completion:nil];
}

Mã lệnh tôi đã commment bên trong ý nghĩa từng dòng.

Nguyên lý chạy:

– Tạo một đối tượng kiểu UIImagePickerController đăng ký delegate cho nó ,Đăng ký kiểu truy cập ảnh camera , đăng ký chỉnh sủa ảnh cho nó, khi phương thức allowEditting =YES thì ra view chỉnh sửa

chỉnh sủa các ảnh , các ảnh chỉnh sửa sẽ lưu trong  dictionary info[UIImagePickerControllerEditedImage]. Và nó sẽ được gọi đến phương thức:

//nút choose
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
    UIImage *image=info[UIImagePickerControllerEditedImage];
    self.imageView.image=image;
    NSLog(@"ok");
    [picker dismissViewControllerAnimated:YES completion:nil];
}

Cho phép ta chọn ảnh đã chỉnh sửa. Khi click vào nút choose tắt cửa sổ đang chỉnh sửa [picker dismissViewControllerAnimated:YES completion:nil];

và set ảnh vào imageView.

khi đó sẽ đi đến

[self presentViewController:picker animated:YES completion:nil ] cho phép phủ view lên.; Nếu ta không click vào choose  click vào Cancel thi gọi đến

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    NSLog(@"ok1");
     [picker dismissViewControllerAnimated:YES completion:nil];
}

để thoát trình lựa chọn ảnh.

Tương tự đối với lựa chọn ảnh trong thư viên chung chỉ đăng ký picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;

- (IBAction)chonAnh:(UIButton *)sender {
    UIImagePickerController *picker=[[UIImagePickerController alloc] init];
    picker.delegate=self;
    picker.allowsEditing=YES;//khi đăng ký chỉnh sửa gọi đến phương thức didFinishPickingMediaWithInfo
    picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentViewController:picker animated:YES completion:nil ];
}

Biên dịch và chạy thử rất tiếc camera trên simulator không có camera nên không thể chụp ảnh.

Chúng ta chỉ có thể chọn ảnh.Các bạn có device Iphone chạy demo sẽ chụp được ảnh .

kết quả biên dịch trên simulator :

Screen Shot 2016-04-26 at 10.31.46

 

full source code :

http://www.mediafire.com/download/kng2bqbix1cc7hm/pickerImage.zip

Phần tiếp theo mình sẽ giới thiệu các bạn cách chạy video quay video … ghi âm thanh 🙂

thanks you all !!! 🙂 Hãy để lại suy nghĩ của bạn cho chúng tôi tham khảo !!!

Gợi ý xem thêm:

  • Nếu các bạn muốn biết thêm các kỹ thuật khác về ios, các bạn có thể tham khảo thêm các khóa học ios tại đây.

Add a Comment

Your email address will not be published. Required fields are marked *