从 UIImageView 中提取书写区域
Posted
技术标签:
【中文标题】从 UIImageView 中提取书写区域【英文标题】:Extract written area from the UIImageView 【发布时间】:2017-06-19 04:17:06 【问题描述】:所以我有 UIImageView 供用户编写签名。 UIImageView 在附加他的签名时占据了整个屏幕,以方便用户使用。
我可以通过UIImageView.image
获取并保存图像,但是当我检查保存的图像时,它有很多空白!签名很小,不会占据设备的整个屏幕,但保存的图像会占据设备的整个屏幕,包括没有书写/签名的区域。
有没有办法至少将图像裁剪/修剪到有签名的区域?
更新: 如果您查看下面的示例,您会注意到签名周围的区域。显示时我无法调整图像本身的大小,因为它会使签名更小更难阅读
【问题讨论】:
【参考方案1】:最后,我自己找到了方法。我所做的是我注意到touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
中的两个CGPoint
leftPoint和rightPoint,下面的方法是用来更新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)
如果您有其他想法,请告诉我!现在我将使用它。谢谢
【讨论】:
以上是关于从 UIImageView 中提取书写区域的主要内容,如果未能解决你的问题,请参考以下文章
ios - Uitableviewcell 中的 Uilabel 和 UIimageview
用 UIImageView 替换 UIRefreshControl