Размер кадра камеры Objective-C

У меня есть процедура, которую я использую, чтобы заставить камеру сделать снимок. После того, как камера сделает снимок, пользователю предоставляется возможность обрезать изображение по умолчанию, прежде чем делегат передаст мне обратно UIImage. Есть ли способ, которым я могу передать динамическое CGRect, чтобы сделать эту область обрезки по умолчанию определенного размера? Одна вещь, которую я должен упомянуть, это то, что приложение является приложением для iPad с альбомной ориентацией.

Вот пример кода:

-(void)triggerCamera:(id)sender
{
    UIImagePickerController *camera = [[UIImagePickerController alloc] init];
    camera.delegate = self;
    camera.allowsEditing = YES;
    camera.sourceType = UIImagePickerControllerSourceTypeCamera;
    //pass in some sort of CGRect ??
    [self presentViewController:camera animated:YES completion:NULL];
}


-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {

    UIImage *img = [info objectForKey: UIImagePickerControllerOriginalImage];
    //process my image further
}

person AgnosticDev    schedule 24.02.2014    source источник


Ответы (2)


К сожалению, вы не можете установить размер обрезки. Я имел дело с той же проблемой более 2 лет назад, и я застрял в создании собственного viewController для обрезки изображения.

person Josip B.    schedule 24.02.2014
comment
Я боялся этого. Я надеялся, что смогу убить двух зайцев одним выстрелом, поэтому мне не нужно изменять размер/обрезать изображение после того, как оно будет возвращено делегатом. - person AgnosticDev; 24.02.2014

Можете взглянуть на GKImagePicker на GitHub. Этот проект не проявлял особой активности в последние несколько месяцев (а может и больше), но попробовать стоит. Он даже поставляется с возможностью изменения размера области обрезки. Сам не пробовал, но реализация выглядит довольно просто:

self.imagePicker = [[GKImagePicker alloc] init];
self.imagePicker.cropSize = CGSizeMake(320, 90);
self.imagePicker.delegate = self;

[self presentModalViewController:self.imagePicker.imagePickerController animated:YES];
person Corey    schedule 24.02.2014
comment
Хорошо, проверим. Спасибо Кори! - person AgnosticDev; 24.02.2014
comment
Я попробовал этот проект и не смог получить желаемого результата. Я хочу иметь возможность получить размер обрезки после того, как я сделаю фотографию динамичной. Я должен был упомянуть, что мое приложение является только альбомным, приложением для iPad. Я отредактирую свой вопрос для ясности. - person AgnosticDev; 24.02.2014