2

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

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

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

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

4

1 回答 1

0

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

于 2013-12-22T21:29:34.827 回答