【问题标题】:Can I prevent the confirmation screen in the image picker from appearing? [duplicate]我可以阻止图像选择器中的确认屏幕出现吗? [复制]
【发布时间】:2014-01-10 06:24:54
【问题描述】:

我在 ios 中上了一门相机课。 ADMSImageUploader.h如下

#import <UIKit/UIKit.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <AssetsLibrary/AssetsLibrary.h>

@interface ADMSImageUploader : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@property BOOL newMedia;
@property (weak, nonatomic) IBOutlet UIImageView *previewImage;

- (IBAction)returnButtonClicked:(id)sender;
- (IBAction)retakeButtonClicked:(id)sender;
- (IBAction)uploadButtonClicked:(id)sender;


-(void)openCamera:(NSString *)dealerId : (NSString *)inventoryId;

@end

.m 文件中的代码如下。下面有一个功能可以打开相机

-(void)useCamera{
     if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.mediaTypes = @[(NSString *) kUTTypeImage];
    imagePicker.allowsEditing = NO;
    [self presentViewController:imagePicker animated:YES completion:nil];
    _newMedia = YES;
}

}

这是相机的图像

我想阻止下面的屏幕出现并将捕获的图像显示到图像视图中

感谢您的帮助。

【问题讨论】:

  • This 可以帮到你。

标签: ios iphone ipad ios7


【解决方案1】:

使用此代码。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage* Image = [info valueForKey:@"UIImagePickerControllerOriginalImage"];
    [self previewImageOverlayView:Image];    
}

-(void)previewImageOverlayView :(UIImage *)captureImage
{
    CGRect deviceRect= [UIScreen mainScreen].bounds;
    float screenHeight=deviceRect.size.height;

    UIView *previewImageOveraLayView=[[UIView alloc] initWithFrame:deviceRect];
    [previewImageOveraLayView setAutoresizesSubviews:NO];

    UIImageView *previewImage=[[UIImageView alloc] init];
    [previewImage setContentMode:UIViewContentModeScaleAspectFill];
    [previewImage setFrame:CGRectMake(0,0,320,screenHeight-60)];
    [previewImage setImage:captureImage];
    [previewImageOveraLayView addSubview:previewImage];

    UIButton *retakeBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    [retakeBtn addTarget:self action:@selector(useOrRetakeBtnPress:) forControlEvents:UIControlEventTouchUpInside];
    [retakeBtn setBackgroundColor:[UIColor blackColor]];
    [retakeBtn setTitle:@"Retake" forState:UIControlStateNormal];
    [retakeBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [retakeBtn setFrame:CGRectMake(0,screenHeight-60,160,60)];
    [previewImageOveraLayView addSubview:retakeBtn];


    UIButton *useBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    [useBtn setTag:2000];
    [useBtn addTarget:self action:@selector(useOrRetakeBtnPress:) forControlEvents:UIControlEventTouchUpInside];
    [useBtn setBackgroundColor:[UIColor blackColor]];
    [useBtn setTitle:@"Use" forState:UIControlStateNormal];
    [useBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [useBtn setFrame:CGRectMake(160,screenHeight-60,160,60)];
    [previewImageOveraLayView addSubview:useBtn];


    [imagePicker.view addSubview:previewImageOveraLayView];
}
-(IBAction)useOrRetakeBtnPress:(UIButton*)sender
{
    [sender.superview removeFromSuperview];
}

【讨论】:

    【解决方案2】:

    您可以使用 AVCapturSession 代替 UIImagePickerController。您可以随心所欲地使用它。

    更多详情请访问Apple sample code for this

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2023-03-31
      • 1970-01-01
      • 2022-11-02
      相关资源
      最近更新 更多