To get the highest possible interpolation quality you might want to add the following line to PhoneyDeveloper's code, right after the creation of the CGContext:
Code:
CGContextSetInterpolationQuality(bitmap, kCGInterpolationHigh)
I have not done any real tests how much this matters (if at all). But I think it can't hurt (unless performance is a big issue).