Image Modification Blocks

Many times, operations that would affect the appearance of an image you’re displaying are big sources of main thread work. Naturally, you want to move these to a background thread.

By assigning an imageModificationBlock to your imageNode, you can define a set of transformations that need to happen asynchronously to any image that gets set on the imageNode.

_backgroundImageNode.imageModificationBlock = ^(UIImage *image) {
	UIImage *newImage = [image applyBlurWithRadius:30 
										 tintColor:[UIColor colorWithWhite:0.5 alpha:0.3] 
	return newImage ? newImage : image;

//some time later...

_backgroundImageNode.image = someImage;

The image named “someImage” will now be blurred asynchronously before being assigned to the imageNode to be displayed.

Edit on GitHub