如何将自定义缩放应用于UIImagePicker相机?

时间:2012-08-08 14:11:41

标签: ios camera zoom uiimagepickercontroller

我有一个自定义相机控件,有滑块可应用缩放。我可以使用以下代码缩放图像:

self.pickerReference.cameraViewTransform = CGAffineTransformScale(CGAffineTransformIdentity, zoom, zoom);

但是当我在didFinishPickingMediaWithInfo中获取图像时,我会获得UIImagePickerControllerOriginalImage的原始图像,而不是缩放图像。对于UIImagePickerControllerEditedImage,没有图像。

我也尝试过:

currentImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageView *v = [[UIImageView alloc]initWithImage:currentImage];
UIGraphicsBeginImageContext(v.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextScaleCTM(context, zoom, zoom);
[v drawRect:pickerReference.view.bounds];
CGContextRestoreGState(context);
zoomedCurImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Write image to PNG file
[UIImageJPEGRepresentation(zoomedCurImg, 0.4) writeToFile:imgPath atomically:YES];

这会对原始图像应用缩放,但始终在左上角放大缩放。而不是它应用的地方。

请建议解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题与不同的代码和关闭自动布局修复它为我。不确定这是否适用于此,但值得一试。