0

这一定是以前问过的,但我找不到参考。我正在通过下面的代码创建图像(感谢 Ben Morrow)

 let rect = panGesture.objectBounds()
        switch panGesture.state {
        case .began:
            randomColor()

            previousPoint1 = panGesture.locationInObject()

            // create backward projection
            let velocity = panGesture.velocityInObject()
            // the pan gesture recognizer requires some movement before recognition
            // this multiplier accounts for the delay
            let multiplier: CGFloat = 1.75
            previousPoint2 = CGPoint(x: previousPoint1.x - exponentialScale(velocity.x) * multiplier,
                                     y: previousPoint1.y - exponentialScale(velocity.y) * multiplier)

        case .changed:
            let currentPoint = panGesture.locationInObject()

            // draw a curve through the two mid points between three points. The middle point acts as a control point
            // this creates a smoothly connected curve
            // a downside to this apprach is that the drawing doesn't reach all the way to the the user's finger touch. We create forward and backward projections with the velocity to account for the lag
            let actualImage = curveThrough(a: previousPoint2, b: previousPoint1, c: currentPoint, in: rect)
            savedImage = actualImage

            // create forward projection
            let velocity = panGesture.velocityInObject()
            let projectedPoint = CGPoint(x: currentPoint.x + exponentialScale(velocity.x), y: currentPoint.y + exponentialScale(velocity.y))
            let projectedImage = curveThrough(a: previousPoint1,
                                              b: currentPoint,
                                              c: midPoint(currentPoint, projectedPoint),
                                              in: rect,
                                              with: 0.5)
            // show the forward projection but don't save it
            canvasGroup.setBackgroundImage(projectedImage)

            previousPoint2 = previousPoint1
            previousPoint1 = currentPoint

        case .ended:
            let currentPoint = panGesture.locationInObject()
            let image = curveThrough(a: previousPoint2, b: previousPoint1, c: currentPoint, in: rect)
            canvasGroup.setBackgroundImage(image)
            savedImage = image
        default:
            break
        }
    }

有没有办法将生成的图像保存到照片库?谢谢

4

1 回答 1

1

我的猜测是您可以使用 WCSession 将图像传输到 iOS 应用程序 transferFile:metadata:然后使用 UIImageWriteToSavedPhotosAlbum() 函数保存图像。

我发现这个示例可能会有所帮助,但请注意,根据我的经验,通过 WCSession 发送数据的大小受到限制,未记录在案。这就是为什么我建议使用 transferFile。

于 2016-08-18T07:02:48.777 回答