1 Manipulate the bitmap screen, in the same way that the zebra code does, to show a preview
I assume this is something that you would do in conjunction with user input to allow the user to "define" or "edit" how the anticipated image manipulation would look?
2 When the image is saved, tap off the raw_* method to save an effected version to the memory card
And I guess this means that when the image is captured, you would apply whatever manipulations were specified to the data in the raw buffer prior to it being converted to a jpg and saved by the Canon firmware?
Is there a better way?
Nothing come to mind but that's not to say there will be no other options. Be aware that the existing zebra (and other CHDK OSD) code modifies an overlay buffer - it does not really interact with the live image shown on the LCD.
Is there something out there that already does this?
I don't believe so. But usually when I say something like that, somebody else jumps in with an example so it's worth checking back here a few times.