UIImagePickerController的

UIImagePickerController的

我正在使用UIImagePickerControllerUIView作为自己的UIViewController's UIView子视图的子视图。没什么特别的,当我拍照时问题就来了。发生的事情是这样的:

1我从UIImagePickerController的视图中看到的图片是这样的:

2这就是我拍照时看到的([self.imagePicker takePicture];)并放在UIImageView上:

从我看到的图像来看,Y轴的位置更高。有什么办法解决这个问题?我不在乎是否必须对以下图像中的图像进行某种裁剪:

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

当我在UIViewContentModeScaleAspectFill上使用UIImageView时,我可能会理解此行为contentMode,但是我希望能够从要开始“查看”的位置指定Y。

最佳答案

能够在28分钟后解决这个问题,哦,好了,这是这样:

CGImageRef imageRef = CGImageCreateWithImageInRect([imageTaken CGImage], CGRectMake(0.0f, 0.0f, 960.0f, 960.0f));

[selectedImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);

通过裁剪960.0f,我可以保持图片的原始质量,还可以分辨出从哪个Y中可以“裁剪”图片。我还添加了这个:
+ (UIImage*)rotate:(UIImage*)image andOrientation:(UIImageOrientation)orientation;
{
    UIGraphicsBeginImageContext(image.size);

    CGContextRef context=(UIGraphicsGetCurrentContext());

    if (orientation == UIImageOrientationRight) {
        CGContextRotateCTM (context, 90/180*M_PI) ;
    } else if (orientation == UIImageOrientationLeft) {
        CGContextRotateCTM (context, -90/180*M_PI);
    } else if (orientation == UIImageOrientationDown) {
        // NOTHING
    } else if (orientation == UIImageOrientationUp) {
        CGContextRotateCTM (context, 90/180*M_PI);
    }

    [image drawAtPoint:CGPointMake(0, 0)];
    UIImage *img=UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
}

因为图片即将向左旋转。

关于ios - UIImagePickerController的 View 大小错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19470846/

10-08 20:52