首先,照相或從相冊選擇照片需要使用UIImagePickerController,使用時需要添加兩個協議
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UINavigationControllerDelegate,UIImagePickerControllerDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *imageScroll;
@property (weak, nonatomic) IBOutlet UIImageView *photoImage;
@end
從相機獲取圖片的方式:
//從相機獲取圖片
- (IBAction)photoFromCamera:(id)sender {
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;//設置類型爲相機
UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化
picker.delegate = self;//設置代理
picker.allowsEditing = YES;//設置照片可編輯
picker.sourceType = sourceType;
//picker.showsCameraControls = NO;//默認爲YES
//創建疊加層
UIView *overLayView=[[UIView alloc]initWithFrame:CGRectMake(0, 120, 320, 254)];
//取景器的背景圖片,該圖片中間挖掉了一塊變成透明,用來顯示攝像頭獲取的圖片;
UIImage *overLayImag=[UIImage imageNamed:@"zhaoxiangdingwei.png"];
UIImageView *bgImageView=[[UIImageView alloc]initWithImage:overLayImag];
[overLayView addSubview:bgImageView];
picker.cameraOverlayView=overLayView;
picker.cameraDevice=UIImagePickerControllerCameraDeviceFront;//選擇前置攝像頭或後置攝像頭
[self presentViewController:picker animated:YES completion:^{
}];
}
else {
NSLog(@"該設備無相機");
} }
從相冊獲取圖片的方式:
//從相冊獲取圖片
- (IBAction)photoFromAlbum:(id)sender {
UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType];
}
pickerImage.delegate = self;
pickerImage.allowsEditing = NO;
[self presentViewController:pickerImage animated:YES completion:^{
}];
}
從相冊或相機選擇圖片之後的操作:
//從相冊選擇圖片後操作
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:^{
}];
//NSLog(@"%@",info);
//保存原始圖片
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self saveImage:image withName:@"currentImage.png"];
}
保存選擇的圖片並顯示在控件上:
//保存圖片
- (void) saveImage:(UIImage *)currentImage withName:(NSString *)imageName {
NSData *imageData = UIImageJPEGRepresentation(currentImage, 0.5);
// 獲取沙盒目錄
NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:imageName];
// 將圖片寫入文件
[imageData writeToFile:fullPath atomically:NO];
//將選擇的圖片顯示出來
[self.photoImage setImage:[UIImage imageWithContentsOfFile:fullPath]];
//將圖片保存到disk
UIImageWriteToSavedPhotosAlbum(currentImage, nil, nil, nil); }
取消操作時調用的方法:
//取消操作時調用
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:^{
}];
}
DEMO下載地址 :http://download.csdn.net/download/u011918080/6932721