Получение качественной миниатюры изображения в ASP.NET

У платформы .NET в классе System.Drawing.Image существует метод  GetThumbnailImage, который позволяет просто и быстро получить миниатюру изображения. Но качество полученной миниатюры оказалось хуже чем хотелось.

Следующий код был написан для решения данной проблемы и позволяет выбирать качество получаемой миниатюры и используемый метод интерполяции. Данный фрагмент кода подразумевает наличие на форме стандартных ASP.NET контролов FileUpload и Button