Ios 是否为PickerController设置最大图像分辨率?

Ios 是否为PickerController设置最大图像分辨率?,ios,objective-c,uiimagepickercontroller,Ios,Objective C,Uiimagepickercontroller,我想拍一张固定分辨率的照片。需要强制用户裁剪图像。我需要一个正方形的图像 我正在使用下一个代码,它只是按屏幕分辨率的宽度进行裁剪 self.imagepicker = [[UIImagePickerController alloc]init]; self.imagepicker.delegate = self; self.imagepicker.allowsEditing=YES; self.imagepicker.preferredContentSize = CGSizeMake(200, 2

我想拍一张固定分辨率的照片。需要强制用户裁剪图像。我需要一个正方形的图像

我正在使用下一个代码,它只是按屏幕分辨率的宽度进行裁剪

self.imagepicker = [[UIImagePickerController alloc]init];
self.imagepicker.delegate = self;
self.imagepicker.allowsEditing=YES;
self.imagepicker.preferredContentSize = CGSizeMake(200, 200);

self.imagepicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;

[self presentViewController:self.imagepicker animated:YES completion:nil];

preferredContentSize
不是UIImagePickerController本身的属性,而是任何UIViewController的属性,例如当它嵌入UIPopoverController时


您需要自己展示裁剪界面。

如果您想在选择图像后完成裁剪,请在中心尝试裁剪图像的代码

- (UIImage *)squareImageFromImage:(UIImage *)image scaledToSize:(CGFloat)newSize1
{
    CGAffineTransform scaleTransform;
    CGPoint origin;
    CGFloat newSize;

    if (image.size.width > image.size.height)
    {
        newSize=image.size.height;
        CGFloat scaleRatio = newSize / image.size.height;
        scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
        origin = CGPointMake(-(image.size.width - image.size.height) / 2.0f, 0);
    }
    else
    {
        newSize=image.size.width;
        CGFloat scaleRatio = newSize / image.size.width;
        scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
        origin = CGPointMake(0, -(image.size.height - image.size.width) / 2.0f);
    }

    CGSize size = CGSizeMake(newSize, newSize);
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions(size, YES, 0);
    } else {
        UIGraphicsBeginImageContext(size);
    }

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextConcatCTM(context, scaleTransform);

    [image drawAtPoint:origin];

    image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;
}

这对你很有帮助。谢谢

这段代码给你带来了什么问题?你想在设置图像之前裁剪正方形图像吗?我想让用户按照自己的意愿剪切图像,但是当图像是横向的,他不缩放图像时,图像会有一个黑色的条带顶部和底部,允许编辑为“否”,并编写自己的方法来裁剪图像!!!