Comment dessiner un transparent de l'avc (ou en tout cas clairement partie d'une image) sur l'iPhone
J'ai une petite application qui permet à l'utilisateur de dessiner sur l'écran avec le doigt.
J'ai un UIImageView
où l'utilisateur dessine, par la création d'un CGContextRef
et les différents CG draw
fonctions. J'ai d'abord tracer des traits ou des lignes avec la fonction CGContextAddLineToPoint
Maintenant, ma question est la suivante:
L'utilisateur peut tracer des lignes de différentes couleurs. Je veux lui donner la possibilité d'utiliser un "rubber"
outil pour supprimer une partie de l'image dessinée jusqu'à présent, avec le doigt. Au départ, j'ai fait cela en utilisant une couleur blanche pour la course (ensemble avec le CGContextSetRGBStrokeColor
fonction), mais ça n'a pas marché...parce que j'ai découvert plus tard que le UIImage
sur le UIImageView
effectivement eu un arrière-plan transparent, pas de blanc...donc je finirais avec une image transparente avec des lignes blanches sur elle!
Est-il de toute façon à définir un "transparent"
couleur de contour ou est-il un autre moyen pour effacer le contenu de la CGContextRef
sous le doigt de l'utilisateur, quand il se déplace il?
Grâce
Vous devez vous connecter pour publier un commentaire.
Cela fera l'affaire:
J'ai fini à l'aide de Bresenham ligne de l'algorithme (en revenant à la les jours d'antan, lorsque j'ai eu à écrire mes propres routines graphiques)...
Ouf! C'est un long chemin à parcourir pour créer une (un peu), maladroit gomme ligne.
Pour l'utiliser, faire quelque chose comme:
Cela suppose que vous avez déjà créé un drawingView (UIImageView) et drawingBoard (UIImage).
Alors, pour effacer une ligne, il suffit de faire quelque chose comme:
(remplacer x1, y1, x2 et y2 par les valeurs appropriées)...
J'ai essayé d'utiliser:
mais cela ne fonctionne pas, car il semble être le "dessin" sur le dessus du cadre avec une couleur invisible (et invisible couleur + quelle que soit la couleur c'est le dessin sur = la couleur c'est le dessin sur).
La seule solution que j'ai trouvé (ce qui n'est pas optimal) est:
Malheureusement, cela signifie que vous devez trouver la trace d'une série de rectangles et de générer de la ligne vous-même...
Si vous souhaitez effacer l'Image avec le tactile c'est mon code .... le unerase partie n'est pas recommandé, c'est un travail, mais un peu lent.