Archives for category: iPhone

Image processing on mobiles can be pretty performance intensive given the relatively low power of their CPU’s (as compared to desktops).

In order to get reasonable processing speeds for my application Bokeh Booth I decided to build some efficient UIImage extensions which make use of the vDSP routines in the iOS 4 and up Accelerate framework. This framework allows for efficient matrix based image processing on iPhone/iPad devices, even those without OpenGL shader support.

You can grab a copy of all my routines here:

The github repository contains a UIImage Category with the dsp processing routines and an example app showing how to call the routines.

I’ve tried to make the routines as easy as possible to use, for example you can blur an image using code as simple as

UIImage* src = [UIImage imageNamed:@"image.png"];
UIImage* blurred = [src imageByApplyingGaussianBlur3x3];

At this stage the library is still very much in it’s infancy but there’s support for blur/sharpen/2pass Gaussian Blur/emboss functions with the potential for many more to come.

The two pass Gaussian filter is particularly fast compared to any trivial implementation in software.

The github repository contains an example project showing usage:

If you use the library anywhere I’d love to hear about it. Also if you have any bugfixes or ideas on improvements I’d love to hear them too!

email me


UPDATE (1/Mar/12): you may also want to check out CoreImage (if you’re only supporting iOS5+) and for other options. I’ve not yet used either but the capabilities of GPUImage look particularly impressive and CoreImage looks amazing (for iOS5+ projects).


Problems with shouldAutorotateToInterfaceOrientation: when using OpenFeint 2.5.1?
read on!

After adding Openfeint to my BoxMaster game (currently pending app store approval) I noticed that iPad view rotation had stopped working.

This struck me as odd so I did a little digging to find the culprit!

It turns out that Openfenit adds a UIView (and associated UIViewController which does not support auto-rotation) to your root window to work around a particular menu bug. Thankfully this bug only manifests if your application does NOT use any view controllers.

The bottom line here is:
if your application already contains a view controller, you can safely remove this code.


 [self fixInCaseOfNoViewControllers];

to this:

 // disabled due to auto rotation issues, I promise that I already have a view controller    
 // [self fixInCaseOfNoViewControllers];

Doing so restored my applications rotation behaviour and all is well in the world.

Hope this helps someone out!

Some more related details here:

Hi there!

Our official home on the web has moved to

This blog will continue to exist but will become more technically focused with development articles and updates.

As always you can continue to follow us on twitter or facebook too: