我有一张全尺寸为1800 x 2400像素的图像。它以450 x 600的UIImageView显示。
我已将UIPinchGestureRecognizer
和UIRotationGestureRecognizer
附加到UIImageView,允许用户缩放和旋转效果很好的图像。
我现在需要使用旋转和变换以原始大小(1800 x 2400)导出图像,我正在努力使其工作。
到目前为止我的代码:
if let imageView = imageView, let image = imageView.image {
UIGraphicsBeginImageContext(image.size)
let context = UIGraphicsGetCurrentContext();
context?.translateBy(x: 0, y: image.size.height)
context?.scaleBy(x: 1.0, y: -1.0)
context?.rotate(by: -imageView.transform.b)
context?.draw(image.cgImage!, in: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height))
translatedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();
}
如上所述,旋转是正确的,但是图像被拉出中心,我无法弄清楚如何包含缩放。
图形是我开发中的弱点,我已经在这里工作了几个小时而没有成功。
答案 0 :(得分:0)
永远不要缩放图像本身,因为它耗费时间并且不是推荐的方式。
使用 scrollView 进行缩放,您不必考虑图像大小。将大尺寸图像放在xcassets中。 ScrollView具有用于缩放的委托功能。它也有一些漂亮的属性。
scrollView.minimumZoomScale = 0.5;
scrollView.maximumZoomScale = 6.0;
所以最好把你的努力转移到 UIScrollView ,你会发现你不必为此编写这么多代码。