我尝试在PicFrame或任何其他应用程序中创建功能,以便在一帧中创建照片拼贴。
我在这些滚动视图中创建了两个滚动视图和两个图像视图,用于滚动和缩放图像。效果很好。
然后我需要创建两个矩形图像的一个方形图像。
var firstImage = UIImage(named: leftImagePath)
var secondImage = UIImage(named: rightImagePath)
var size = CGSize(width: 1080, height: 1080)
UIGraphicsBeginImageContext(size)
let leftImageAreaSize = CGRect(x: 0, y: 0, width: size.width / 2, height: size.height)
firstImage!.drawInRect(leftImageAreaSize)
let rightImageAreaSize = CGRect(x: size.width / 2 + 1 , y: 0, width: size.width / 2, height: size.height)
secondImage!.drawInRect(rightImageAreaSize)
var newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
此代码效果很好,但我需要实现滚动和缩放值,在创建一个方形图像之前使用这些值裁剪和缩放图像。
任何人都可以指导我如何做到这一点吗?
答案 0 :(得分:0)
我制作PicFrame所以我想我在这里有一些经验。虽然这不是我的工作,但我自己也没有尝试过,如果您只想快速了解所看到的内容,可以使用drawViewHierarchyInRect并捕获屏幕区域。
否则你要做的是从UIScrollView获取CGPoint contentOffset和CGSize bounds.size。然后通过UIScrollView zoomScale修改它们。确保contentSize是图像的大小,因此zoomScale为1.0将具有原始图像的宽度和高度。
从这里你应该能够制作一个CGRect,它是滚动视图中可见的x,y,宽度,高度,但是转换为图像的大小。将图像裁剪为此大小,然后使用所需的CGRect将其绘制到最终的图形上下文中。