我使用UIImagePickerController
的{{1}}作为我自己的UIView
UIViewController's
子视图的子视图。没什么特别之处,问题出现在我拍照时。发生的事情是这样的:
1我从UIView
视图中看到的图片是这样的:
2这是我拍照时所看到的(UIImagePickerController
)并将其放在[self.imagePicker takePicture];
:
从我看到的Y轴出来的图像有点高。有什么方法可以解决这个问题吗?我不在乎是否必须使用以下形式的图像进行某种裁剪:
UIImageView
我可能会理解这种行为,因为我在- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
UIViewContentModeScaleAspectFill
上使用了UIImageView
,但我希望能够从我想要开始的地方指定Y“ “ 在。
答案 0 :(得分:4)
能够在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;
}
因为图片将向左旋转。