2017-03-08 6 views
0

Je traite de la fonctionnalité manuelle de recadrage d'image. Pour cela, je dessine CAShapeLayer avec quatre coordonnées appelées topLeft, topRight, bottomRight et bottomLeft. L'utilisateur peut effectuer un panoramique sur les points et sélectionner la zone de recadrage. Je suis bloqué à convertir ces points en coordonnées d'image de base et en recadrant plus loin avec CIPerspectiveTransform.Comment convertir les coordonnées CAShapeLayer en CIRectangleFeature pour la recadrage manuel

+0

je pense que vous essayez de découper l'image en tant que shaplayer? –

+0

Salut, merci de répondre. J'utilise une couche de forme pour la visualisation de l'utilisateur. Ce que j'ai l'intention de faire est d'obtenir ces quatre points de forme formés par l'utilisateur et de recadrer l'image en conséquence. ces points. Je suis confronté à des problèmes lors de la conversion de ces poins UIKit en points CoreImage. –

+0

vous fournit l'initialisation de la couche de forme –

Répondre

0

Set image imageView et imageView de masquage d'une couche de forme.

self.imageView = img 
imageView.layer.mask = shapeLayer // set here your shape layer 

Maintenant votre imageView est recadrée.

Obtenir l'image du contexte actuel comme suivre

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, 0); 
imageView.layer.render(in: UIGraphicsGetCurrentContext()!) 
let image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

// check cropping image 
let resultImageView = UIImageView(frame: self.view.frame) 
resultImageView.image = image 
self.view.addSubview(resultImageView) 
+0

Merci, ça a très bien marché. Ce sont capture d'écran et de l'image résultante: fichier : fichier ///Users/Swapnil/Desktop/IMG_2082.PNG : ///Users/Swapnil/Desktop/IMG_2083.JPG je aurai besoin peu plus d'aide de votre part. –

+0

@SwapnilDhapte je ne peux pas montrer votre résultat. comment puis-je vous aider? –

+0

Est-il possible de sauvegarder l'image avec seulement la partie rendue? Pas avec un fond blanc. Comme je veux appliquer CIPerspectiveTransform dessus. –