From http://stackoverflow.com/questions/249587/high-quality-image-scaling-c-sharp