我正在调用 UIImagePickerController 的方法 takePicture 方法来以编程方式使用 iPhone 拍摄图片
但是,我想禁用快门动画,并在拍摄照片时让屏幕保持原样(并禁用声音)。
更新 我现在使用 AVFoundation API 来获取图像,但相机的内容不再显示在屏幕上。我应该初始化一个 UIImagePickerController 只是为了在屏幕上显示相机的内容吗?
谢谢
我正在调用 UIImagePickerController 的方法 takePicture 方法来以编程方式使用 iPhone 拍摄图片
但是,我想禁用快门动画,并在拍摄照片时让屏幕保持原样(并禁用声音)。
更新 我现在使用 AVFoundation API 来获取图像,但相机的内容不再显示在屏幕上。我应该初始化一个 UIImagePickerController 只是为了在屏幕上显示相机的内容吗?
谢谢
UIImagePickerController 有一些选项,但不是很多。 This other question有一些俗气但可能有效的禁用它的想法。
为了完全控制,您需要使用 AVFoundation API。这是一个捕获示例: https ://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010112
查看此示例:它使用 AVCaptureSession 和 ImagePicker 从视频中捕获图像。 http://developer.apple.com/library/ios/#samplecode/AVCam/Listings/Classes_AVCamCaptureManager_m.html
我认为这对 3.0 有用
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:@"public.image"])
{
UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImage * cameraimage= [self scaleAndRotateImage:selectedImage];
CGRect rect =CGRectMake(0, 0,640,875);
CGImageRef imageRef = CGImageCreateWithImageInRect([selectedImage CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
self.captureimage.image=cameraimage;
NSLog(@"selectedimage width:%f ht:%f",img.size.width,img.size.height);
}
[picker dismissModalViewControllerAnimated:YES];
}