I have an image with a yellow vase in the foreground and transparent background:
One way to do this is to use the mathematical morphology operator of dilation to "grow" the alpha channel of the image outward, then use the resulting grayscale image as a mask to simulate a stroke. By filling the dilated mask, then drawing the main image on top, you get the effect of a stroke. I've created a demo showing this effect, available on Github here: https://github.com/warrenm/Morphology (all source is MIT licensed, should it prove useful to you).
And here's a screenshot of it in action:
Note that this is staggeringly slow (dilation requires iteration of a kernel over every pixel), so you should pick a stroke width and precompute the mask image for each of your source images in advance.
I would try either setting the stroke color and line width before your call to CGContextDrawImage
, or tweaking the shadow (opacity, blur, etc) so that it looks like a stroke around the image. Let me know if this works!