Image.GetThumbnailimage метод и качество - PullRequest
5 голосов
/ 26 августа 2011

У меня проблема с Getthumbnailimage. Проблема в том, что размеры файлов определенного размера выглядят очень размытыми и зернистыми. В MSDN , это говорит

Метод GetThumbnailImage хорошо работает, когда запрашиваемое уменьшенное изображение имеет размер около 120 x 120 пикселей. Если вы запрашиваете большое уменьшенное изображение (например, 300 x 300) у изображения, имеющего встроенную миниатюру, это может привести к заметной потере качества миниатюрного изображения. Возможно, лучше масштабировать основное изображение (вместо масштабирования встроенного эскиза), вызвав метод DrawImage.

Проблема в том, что drawimage, кажется, в окнах форм. Есть ли способ сделать это в Webforms? Вот часть моего кода. Примечание: я не хочу получать миниатюру, кто-то другой написал это, и я просто хочу, чтобы отображался фактический размер, вот и все.

protected void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
ad a=(ad)Session["a"];
     DataView dv=a.AdData.Tables[0].DefaultView;
dv.RowFilter="ad_nbr=" + Request.QueryString["l"].Trim();
byte[] MyData= new byte[0];
MyData =  (byte[])dv[0]["image"];
System.Web.HttpContext.Current.Response.ContentType = "image/jpeg";     System.Drawing.Image _image = System.Drawing.Image.FromStream(new  stem.IO.MemoryStream( (byte[])dv[0]["image"]) );

System.Drawing.Image _newimage = _image.GetThumbnailImage(_image.Width, _image.Height,    null, new System.IntPtr() );

        _newimage.Save( System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg );

    }

1 Ответ

9 голосов
/ 27 августа 2011

Если вы хотите больше контролировать качество того, что вы получаете (и, в частности, лучшее качество), посмотрите на изменение размера с помощью этого метода . Требуется немного больше работы, но результаты намного лучше, чем GetThumbnailImage.

Этот метод также работает в Webforms.

...