我有一个自定义相机控件,有滑块可应用缩放。我可以使用以下代码缩放图像:
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];
这会对原始图像应用缩放,但始终在左上角放大缩放。而不是它应用的地方。
请建议解决方案。提前谢谢。
答案 0 :(得分:0)
我有一个类似的问题与不同的代码和关闭自动布局修复它为我。不确定这是否适用于此,但值得一试。