Well, the situation goes as follows I have a CGImage (filled in black for all I care). Every once in a while, I want to erase a circle in a given position and size from the CGImage. In erasing I mean drawing a transparent circle in a specific position in the CGImage... I know I can create a mask image with the circle I want to erase, and mask the CGImage each time I want to erase some... but creating a mask image and a new context, and than drawing a new image to the context with masking each time it is very expensive operations. So I ask you, what is the most efficient way for me to do this? thanks!!