簡體   English   中英

iPhone iOS4低級攝像頭控制?

[英]iPhone iOS4 low-level camera control?

有沒有辦法在iPhone 4上手動設置iOS4中的低速靜態相機設置,如快門速度,光圈或ISO? 我不認為它存在於官方SDK中,但也許有人發現了一些私有API來允許這個?

我發現我的iPhone 4相機無法使用,因為即使在相當不錯的光線下,它始終堅持以最慢的1/15秒快門速度拍攝,如果拍攝對象完全移動,會導致運動模糊。

謝謝!

不是直接的。 請提交錯誤報告。

是的,可能有私有API,但用途有限。

試試這個,我可能對你有用:

@interface MyViewController ()

@property (nonatomic, retain) IBOutlet UIImageView *imageView;

@property (nonatomic, retain) IBOutlet UIToolbar *myToolbar;

@property (nonatomic, retain) OverlayViewController *overlayViewController;

@property (nonatomic, retain) NSMutableArray *capturedImages;

// toolbar buttons

- (IBAction)photoLibraryAction:(id)sender;

- (IBAction)cameraAction:(id)sender;


@end


@implementation MyViewController
- (void)viewDidLoad

{

    self.overlayViewController =

        [[[OverlayViewController alloc] initWithNibName:@"OverlayViewController" bundle:nil] autorelease];



    // as a delegate we will be notified when pictures are taken and when to dismiss the image picker

    self.overlayViewController.delegate = self;

    self.capturedImages = [NSMutableArray array];


    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {

        // camera is not on this device, don't show the camera button

        NSMutableArray *toolbarItems = [NSMutableArray arrayWithCapacity:self.myToolbar.items.count];

        [toolbarItems addObjectsFromArray:self.myToolbar.items];

        [toolbarItems removeObjectAtIndex:2];

        [self.myToolbar setItems:toolbarItems animated:NO];

    }

}


- (void)viewDidUnload
{

    self.imageView = nil;

    self.myToolbar = nil;



    self.overlayViewController = nil;

    self.capturedImages = nil;

}


- (void)dealloc
{   

    [_imageView release];

    [_myToolbar release];



    [_overlayViewController release];

    [_capturedImages release];



    [super dealloc];

}


- (void)showImagePicker:(UIImagePickerControllerSourceType)sourceType
{

    if (self.imageView.isAnimating)

        [self.imageView stopAnimating];



    if (self.capturedImages.count > 0)

        [self.capturedImages removeAllObjects];



    if ([UIImagePickerController isSourceTypeAvailable:sourceType])
    {

        [self.overlayViewController setupImagePicker:sourceType];

        [self presentModalViewController:self.overlayViewController.imagePickerController animated:YES];

    }

}



- (IBAction)photoLibraryAction:(id)sender
{   

    [self showImagePicker:UIImagePickerControllerSourceTypePhotoLibrary];

}



- (IBAction)cameraAction:(id)sender
{

    [self showImagePicker:UIImagePickerControllerSourceTypeCamera];

}


// as a delegate we are being told a picture was taken

- (void)didTakePicture:(UIImage *)picture
{

    [self.capturedImages addObject:picture];

}


// as a delegate we are told to finished with the camera

- (void)didFinishWithCamera
{

    [self dismissModalViewControllerAnimated:YES];


    if ([self.capturedImages count] > 0)
    {

        if ([self.capturedImages count] == 1)
        {

            // we took a single shot

            [self.imageView setImage:[self.capturedImages objectAtIndex:0]];

        }

        else

        {

            // we took multiple shots, use the list of images for animation

            self.imageView.animationImages = self.capturedImages;



            if (self.capturedImages.count > 0)

                // we are done with the image list until next time

                [self.capturedImages removeAllObjects];  



            self.imageView.animationDuration = 5.0;    // show each captured photo for 5 seconds

            self.imageView.animationRepeatCount = 0;   // animate forever (show all photos)

            [self.imageView startAnimating];

        }

    }

}



@end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM