I have a Python script that uses Pillow to resize an image to an Instagram sized image with blurred background from the original image.

Before and after images (both JPGs):

<https://app.box.com/s/jpv2mxlncp9871zvx9ygt0be4gf0zc9q>

Is this simply a function of the 'after' JPG being too small to reflect all the colors in the original image? (Instagram only allows 2048x2048 images max, my original is a JPG converted from TIF from a 24.2-megapixel RAW image taken from a Nikon DSLR). Perhaps it's all in my head, but in my opinion, the 'after' image has lost some saturation / vibrance (compare the yellow buildings and car lights for example)

Has anyone experienced similar issues? Is there some default mode in Pillow that is reducing the number of colors available? I'm thinking of adding an additional saturation step to my script, but that seems like a hack.

EDIT: Added another before / after pair of images to the link above. I also realize I can easily share the script's source (GitHub repo):

<https://github.com/princefishthrower/instagramize>