Draw another image on a UIImage

Alede picture Alede · Jul 11, 2011 · Viewed 22.1k times · Source

Is it possible to add another, smaller, image to a UIImage/UIImageView? If so, how? If not, then how can I draw a small filled triangle?

Thanks

Answer

sergio picture sergio · Jul 11, 2011

You could add a subview to your UIImageView containing another image with the small filled triangle. Or you could draw inside of the first image:

CGFloat width, height;
UIImage *inputImage;    // input image to be composited over new image as example

// create a new bitmap image context at the device resolution (retina/non-retina)
UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), YES, 0.0);        

// get context
CGContextRef context = UIGraphicsGetCurrentContext();       

// push context to make it current 
// (need to do this manually because we are not drawing in a UIView)
UIGraphicsPushContext(context);                             

// drawing code comes here- look at CGContext reference
// for available operations
// this example draws the inputImage into the context
[inputImage drawInRect:CGRectMake(0, 0, width, height)];

// pop context 
UIGraphicsPopContext();                             

// get a UIImage from the image context- enjoy!!!
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();

// clean up drawing environment
UIGraphicsEndImageContext();

This code (source here) will create a new UIImage that you can use to initialize a UIImageView.