2017-06-19 42 views
0

因此,我使用UIImageView来为用户编写签名。 UIImageView在附加签名的同时占用整个屏幕,方便用户使用。从UIImageView提取书写区域

我可以通过UIImageView.image获取并保存图像,但是当我检查保存的图像时,它有很多空白区域!签名很小,不占用设备的整个屏幕,但保存的图像占据了设备的整个屏幕,包括没有书写/签名的区域。

是否有办法至少裁剪/修剪图像到有签名的区域?

更新: 如果你看下面的示例,你会注意到签名周围的区域。我不能在显示时自己调整图像大小,因为它会使签名更小,更难以阅读。 enter image description here

回答

0

最后,我找到了一种方法。我所做的是我注意到两个CGPoint的leftPoint和rightPoint在touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?),下面的方法是使用更新leftPoint和rightPoint

func updatePoints(currentPoint: CGPoint){ 
    if leftPoint.x > currentPoint.x { 
     leftPoint.x = currentPoint.x 
    } 
    if leftPoint.y > currentPoint.y { 
     leftPoint.y = currentPoint.y 
    } 

    if rightPoint.x < currentPoint.x { 
     rightPoint.x = currentPoint.x 
    } 
    if rightPoint.y < currentPoint.y { 
     rightPoint.y = currentPoint.y 
    } 
} 

当终于要拯救签名。我计算的宽度和上述点图像的基础的高度,然后使用CGRect()

let width = rightPoint.x - leftPoint.x 
let height = rightPoint.y - leftPoint.y 
let rect = CGRect(x: leftPoint.x, y: leftPoint.y, width: width, height: height) 
let croppedImage = imageView.image!.cropRect(rect) 

如果您有其他的想法,请让我知道裁剪图像!现在我会用这个。谢谢