我正在使用UIImagePickerController
的UIView
作为自己的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/