1.添加接口
3,主体实现
<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
2,跳转方法
- (void)albumBtnDown
{
[albumViewremoveFromSuperview];
//从相册获取图片
[self showImagePickerForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
}
- (void)photoBtnDown
{
[albumViewremoveFromSuperview];
if ([UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
//从相机获取图片
[selfshowImagePickerForSourceType:UIImagePickerControllerSourceTypeCamera];
}
else{
UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"相机不可用" message:nildelegate:selfcancelButtonTitle:@"关闭"otherButtonTitles:nil,nil];
[alertshow];
[alertrelease];
}
}
3,主体实现
- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{
UIImagePickerController *imagePicker = [[UIImagePickerControlleralloc] init];
imagePicker.modalPresentationStyle =UIModalPresentationCurrentContext;
imagePicker.sourceType = sourceType;
imagePicker.allowsEditing =YES;
imagePicker.delegate =self;
[selfpresentViewController:imagePicker animated:YEScompletion:nil];
[imagePickerrelease];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[selfdismissViewControllerAnimated:YEScompletion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
if ( picker.sourceType==UIImagePickerControllerSourceTypeCamera ) { //照相机
UIImage* cameraImage = [infoobjectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageWriteToSavedPhotosAlbum(cameraImage,nil,nil,nil);
userImageView.image = cameraImage;
NSString *imageNameStr = @"cameraHeaderImage.png";
[self saveImage:cameraImageWithName:imageNameStr];
[self uploadHeaderImage:imageNameStr];
}else{ //相册
UIImage *image = [infoobjectForKey:@"UIImagePickerControllerEditedImage"];
userImageView.image = image;
//保存图片
NSString *imageNameStr = @"userHeaderImage.png";
[self saveImage:imageWithName:imageNameStr];
[self uploadHeaderImage:imageNameStr];
}
[picker dismissViewControllerAnimated:YEScompletion:nil];
}
- (void)uploadHeaderImage:(NSString*)imageNameStr
{
//上传图片 HttpRequest 省略
}
}
- (void)saveImage:(UIImage*)tempImage WithName:(NSString*)imageName
{
//图片保存到 app document目录下
NSData *imageData = UIImagePNGRepresentation(tempImage);
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectorystringByAppendingPathComponent:imageName];
[imageDatawriteToFile:fullPathToFile atomically:NO];
}
- (NSString*)documentFolderPath:(NSString*)imageName
{
// return [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/"] stringByAppendingPathComponent:imageName];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:imageName];
return filePath;
}