creating and drawing on a new UIImage

creating and drawing on a new UIImage

February 23, 2009

Someone asked me how to create a new image and draw another UIImage on it. Here’s the public answer, so everyone can benefit ;)

 

You can make a new image with using core graphics, but there is group of higher level functions in UIKit that are a lot easier to use. For more information please check out the UIKit Function Reference section in the iPhone SDK docs.

This snippet creates a new image context, draws the input image on it and converts the image context to a UIImage. Note that the maximum size of the new image is 1024×1024 due to graphics limitations of the iPhone.

	CGFloat width, height;		// max 1024 due to Core Graphics limitations

	UIImage *
inputImage;		// input image to be composited over new image as example

 
	// create a new bitmap image context

	//

	UIGraphicsBeginImageContext(
CGSizeMake(
width, height)
)
;		
 
	// 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(
)
;

posted on 2011-04-26 17:35  GaryGaryGary  阅读(152)  评论(0)    收藏  举报

导航