ios - 如何将自定义缩放应用到 UIImagePicker 相机?

标签 ios camera zooming uiimagepickercontroller

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

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];

这确实将缩放应用于原始图像,但缩放始终应用在左上角而不是应用到要应用的位置。

请提出解决方案。提前致谢。

最佳答案

我在使用另一段代码时遇到了类似的问题,关闭自动布局为我解决了这个问题。不确定这是否适用于此,但值得一试。

关于ios - 如何将自定义缩放应用到 UIImagePicker 相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866370/

相关文章:

ios - 从另一个 iOS 应用程序打开已安装的应用程序

objective-c - iOS 动画 : background continuously moving (game)

c++ - OpenCV cvCaptureFromCAM 返回零

人口运输车上的摄像头

对于在scrollPane 中使用的图像,JavaFX setFitHeight()/setFitWidth() 会禁用平移

ios - 如何在 iOS 8 中判断目标界面的方向?

ios - 启动错误 'Watchkit extension"- SPErrorUnknownMessage

ios - SceneKit 相机,如何补偿欧拉规则(方向)的变化

java - 缩放后屏幕坐标和图像坐标之间的转换

css - 在 CSS 中模拟浏览器缩放