2017-03-15 7 views
2

J'ai un NSArray de CGPoint que j'ai extrait d'un UIImage. Ces points sont segmentés à partir d'une zone fermée irrégulière dans l'image, c'est-à-dire comme dans la segmentation d'image. Comme le montre l'intérieur du rectangle rouge dans cette image:Créer un CGContext à partir d'un tableau de CGPoints

enter image description here

Comment puis-je créer un CGContext de ces points seulement pour que quand je dessine sur l'image, que ces points sont effectués?

+0

Vous souhaitez créer un masque et utiliser 'CGContextClipToMask' je pense. Le masque est une image grise où les valeurs noires sont inchangées et les blancs sont définis comme transparents lors du dessin - ainsi seules les zones avec des pixels noirs sont dessinées - (je pense, lisez les docs https://developer.apple.com/ reference/coregraphics/1456497-cgcontextcliptomask) –

+1

Peut-être que vous voulez créer un CGPath à partir de ces points et cliper en utilisant ce chemin? – Sulthan

+0

@LouFranco Yea, j'ai essayé cela et c'était utile. J'ai créé un masque d'image à partir de l'image d'origine et marqué les pixels d'écrêtage avec une couleur blanche tandis que les autres sont noirs, puis coupez le contexte à ce masque d'image et cela fonctionne parfaitement. S'il vous plaît ajouter ceci comme réponse et je l'accepterai. –

Répondre

1

Vous souhaitez créer un masque et utiliser CGContextClipToMask. Le masque est une image grise dans laquelle les valeurs noires sont inchangées et les blancs sont définis comme transparents lors du dessin. Par conséquent, seules les zones avec des pixels noirs sont dessinées.

Docs: https://developer.apple.com/reference/coregraphics/1456497-cgcontextcliptomask

+0

Merci @Lou, cela fonctionne comme un charme !! –