2011-08-26 13 views
5

Getthumbnailimageに問題があります。問題は、特定のサイズのファイルサイズが非常にぼやけて粒状であることです。 msdnを超えると、Image.GetThumbnailimage方法と品質

要求されたサムネイル画像のサイズが約120 x 120ピクセルの場合、GetThumbnailImageメソッドがうまく機能します。サムネイルが埋め込まれている画像から大きなサムネイル画像(たとえば300 x 300)を要求すると、サムネイル画像の品質が著しく低下する可能性があります。 DrawImageメソッドを呼び出すことで、(埋め込まれたサムネイルを拡大縮小する代わりに)メイン画像を拡大する方がよい場合があります。

問題は、描画イメージがWindowsフォームにあるように見えることです。 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); 

    } 

答えて

9

あなたが取得するものの品質(特に優れた品質)をより詳細に制御したい場合は、take a look at resizing using this method。もう少し作業が必要ですが、結果はGetThumbnailImageよりもはるかに優れています。

この方法はWebformsでも機能します。

+0

これをプラグインしようとしましたが、今私のページ出力に何も表示されません。 – Jeff

+1

その方法はイメージを作成するために別のページに置く必要があります。 タグを使用してください。 [これを行う方法のヘルプはこちら](http://stackoverflow.com/questions/2253228/asp-net-return-image-from-aspx-link) – Tridus

関連する問題