У меня есть простая система захвата фотографий для захвата профиля в приложении IOS, все отлично работает, кроме как я не понимаю, как ограничить пропорции изображения в соответствии с Рамка изображения профиля 120px x 120px.IOS - UIImagePickerController - Ограничить пропорции изображения
Может ли кто-нибудь предложить какие-либо предложения?
UIView выглядит следующим образом -
Мой код выглядит следующим образом -
- (IBAction)takePhoto:(id)sender {
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;
}
}
- (IBAction)editPicBtn:(id)sender {
[_cameraPanel setHidden:NO];
}
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = info[UIImagePickerControllerMediaType];
[self dismissViewControllerAnimated:YES completion:nil];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = info[UIImagePickerControllerOriginalImage];
_photoSquare.image = image;
if (_newMedia)
UIImageWriteToSavedPhotosAlbum(image,
self,
@selector(image:finishedSavingWithError:contextInfo:),
nil);
}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
{
// Code here to support video if enabled
}
[_cameraPanel setHidden:YES];
}
-(void)image:(UIImage *)image
finishedSavingWithError:(NSError *)error
contextInfo:(void *)contextInfo
{
if (error) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Save failed"
message: @"Failed to save image"
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)useCameraRoll:(id)sender {
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.mediaTypes = @[(NSString *) kUTTypeImage];
imagePicker.allowsEditing = NO;
[self presentViewController:imagePicker
animated:YES completion:nil];
_newMedia = NO;
}
}
Спасибо за вашу помощь Martin - редактор работает отлично и ограничивает изображение в квадрат пропорции на рулоне камеры - но выкалывает изображение для камеры в реальном времени .. – Dancer
Что вы подразумеваете под сквошем изображение ..? Я попробовал это сам, и он работает нормально. AllowEditing = YES было достаточно, чтобы представить обрезку как для UIImagePickerControllerSourceTypeCamera, так и для UTImagePickerControllerSourceTypePhotoLibrary sourceTypes, и оба изображения были обрезаны на квадраты в моем случае. –