2016-08-18 1 views
0

Это должно было предложено раньше, но я не могу найти ссылку .. Я создаю изображение, используя код (спасибо Бен Морроу)watchOS - Есть ли способ сохранить изображение, нарисованное на часах, в PhotoLibrary?

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 
     } 
    } 

Есть ли способ, чтобы сохранить полученное изображение в библиотека фотографий? Благодаря

ответ

1

Я думаю, что вы можете передать изображение в приложении IOS, используя WCSessiontransferFile:metadata:, а затем сохранить изображение с помощью функции UIImageWriteToSavedPhotosAlbum().

Я нашел this example, что может быть полезно, но, пожалуйста, обратите внимание, исходя из моего опыта, отправка данных по WCSession ограничена размером, который не документирован. Вот почему я предложил использовать transferFile.

+0

Спасибо Josip, очень полезно. –

Смежные вопросы