It's easy to change the display size of an image with CSS. So the issue then becomes one of image file size. Rather than complex solutions for serving up a different image, it's worth considering a different approach to serving up one single image. I like this approach:
which basically serves up a single image (that is optimized for retina displays, too) but yet which has a very small file size. The basic idea is that you give the image large dimensions, but save the image at low quality, making for a very small file size. Via CSS and/or HTML, you then set the display size of the image to whatever you like. You get a sinle image that displays well in all situations with a very small file size. Wins all round.