My Postcards app has a design screen where you can change colors of things, so I needed a color picker. A very easy way to make a color picker on just about any platform is to make some kind of color pallet image file, display it for the user to click on, and do a call like: getPixelColorAtScreenLocation(x,y)
This was available back in 1983 on my ZX-Spectrum, but alas Cocoa Touch doesn't have it. (If I missed something I hope a reader will set me straight.) What are some alternatives then?

Ditch the color pallet and use sliders to mix colors. Not very user friendly for the everyday user.

Manually build a lookup table for position to color. Hard work and what if I want to use a different image?

Parse the image file myself and find the color at x,y using some third party library. Maybe...

Bend core graphics to my will and have it 'parse' the image file for me and make the uncompressed pixels available.

Googling around turned up a way to make the last technique work, which is good because we're using existing APIs, and it will work for any image:

Make an off screen bitmap image context that is uncompressed and has a known byte to pixel mapping.

Re-draw the color picker image into that context.

Turn x,y touch co-ordinates into a position in the context's bitmap buffer.

Turn the pixel bytes at the offset position into a UIColor.

I've wrapped this up in ColorPickerImageView, a subclass of UIImageView. When you tap it, it uses this approach to get the pixel color you tapped. You can also register a simple delegate with it to get a callback with the picked color. You put your own image in it, so you can make it a little color pallet in a corner or make it fill the screen. As it's derived from UIImageView, you use it just like UIImageView in code or in Interface Builder. The pixel grabbing source code is below, and the whole class is included in: ColorPicker code to download and copy.