我有一个区域,用户可以将他们的签名添加到应用程序中,以验证订单。
他们用触摸签名。
唯一的问题是,签名的框架很大,如果用户要让签名非常小,当我保存图像时,我会在图像周围留下大量空白空间,当我添加时将其发送到电子邮件中,该过程可能看起来很糟糕。
有什么办法,使用它我可以将图像裁剪到实际内容的边界,而不是框本身的边界?
我想这个过程将涉及以某种方式检测空间内的内容并绘制一个 CGRect 以匹配它的边界,然后再将此 CGRect 传递回上下文?但我不知道如何以任何形式或形式进行此操作,这确实是我第一次使用 CGContext 和图形框架。
这是我的签名绘图代码:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:signView];
//Define Properties
[drawView.image drawInRect:CGRectMake(0, 0, drawView.frame.size.width, drawView.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinBevel);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), true);
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), true);
//Start Path
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
//Save Path to Image
drawView.image = UIGraphicsGetImageFromCurrentImageContext();
lastPoint = currentPoint;
}
如果你能提供它,谢谢你的帮助。