I understand the principles behind the split tone effect, and would love to use either a color map or tone curves for individual rgb channels. Unfortunately that’s not an option for iOS at the moment, as the SDK does not include those filters.
The only hack I’ve come up with (other than doing a render through opengl) is duplicating an image, adjusting hue in the highlights in one, shadows in the other, and combining them. However, I would prefer a simpler way that does not require a two-chain composite operation.
Is such an effect possible with a chain of any of the currently available core image filters in iOS 5?
I’ve been reading a little about how to do this in Photoshop, and it’s basically increasing the contrast in the red and green channels and decreasing it in the blue channels. (At least for a basic effect – if you really do it with film, you can get some really odd color shifts, too!)
You can do contrast adjustment using a series of CIColorMatrix nodes. Contrast is basically ((value – 0.5) * contrast) + 0.5. So a color matrix for, say, a contrast of 1.5 in red and green, and 0.66 in blue, would be something like
CIColorCube can probably reproduce more complex transformations, but the format of its data is complicated. You need to create a 3D lookup table.
CIToneCurve could do it if you did 3 separate passes (or maybe only 2 – one for both red and green and the 2nd one for only blue), and then combined the results. You’d set the 2nd point below 0.25 and the 4th point above 0.75 in red and green, and the opposite in blue.