简体   繁体   English

在iPhone中捕获图像

[英]Capturing Image in Iphone

I have a blank screen on which i click camera button and take photo and than that photo appears on my blank screen as a UIVIew and i'm adding multiple images from Camera to blank screen. 我有一个空白屏幕,单击相机按钮并拍照,然后该照片以UIVIew出现在我的空白屏幕上,并且我将多个图像从“相机”添加到空白屏幕。 The problem is sometimes i can add multiple images on blank screen but sometimes when i capture image and than all images on blank screen disappear and just shows the current image. 问题是有时我可以在黑屏上添加多个图像,但是有时当我捕获图像时,黑屏上的所有图像都消失了,只显示了当前图像。

在此处输入图片说明

- (IBAction)openCameraOnAddButton:(id)sender {
//NSLog(@"openCameraOnAddButton");
[AddImagesToCanvasView setHidden:YES];
UIImagePickerController *picker = [[UIImagePickerController alloc] init];  
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera;  
[self presentModalViewController:picker animated:YES];

} }

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain];


UIView *holderView;
if(image.size.width > image.size.height || image.size.width == image.size.height)
{
    holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 180, 160)];
}
else{
    holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 240)];
}
UIImageView *imageview = [[UIImageView alloc] initWithFrame:[holderView frame]];
[imageview setImage:image];
NSLog(@"Tag By Default %d",(arc4random()%100)+10);
[holderView setTag:(int)objectDelegate.tagForHolderView];
[imageview setTag:((int)objectDelegate.tagForHolderView)+1];
[holderView addSubview:imageview];


UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];

 UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
 [rotationRecognizer setDelegate:self];
 [holderView addGestureRecognizer:rotationRecognizer];

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[holderView addGestureRecognizer:panRecognizer];

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[holderView addGestureRecognizer:tapRecognizer]; 


 UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)];
 [holderView addGestureRecognizer:gestureRecognizer];

[holderView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[holderView.layer setBorderWidth: 3.0];
[self.view addSubview:holderView];
objectDelegate.tagForHolderView+=2;

}

Not sure but as you are doing all the operation UIImagePickerCotroller's delegate methods sometimes it may not work. 不确定,但是当您执行所有操作UIImagePickerCotroller的委托方法时,有时可能无法正常工作。

I faced same problem while storing the image in document directory & to resolve this i had created new Thread in didFinishPickingMediaWithInfo method & moved entire code in that method. 我在将图像存储在文档目录中时遇到了相同的问题,并且要解决此问题,我在didFinishPickingMediaWithInfo方法中创建了新线程,并在该方法中移动了整个代码。 Then after it works fine for me. 然后对我来说很好。 Try to do that. 尝试做到这一点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM