GetThumbnailImage縮略圖質(zhì)量的問(wèn)題

2010-08-28 10:52:10來(lái)源:西部e網(wǎng)作者:

  一般來(lái)說(shuō),使用GetThumbnailImage生成圖片縮略圖其實(shí)效果還是可以的,一般上傳jpg格式效果也不錯(cuò),但是有時(shí)候就會(huì)出現(xiàn)問(wèn)題。比如“如當(dāng)源圖尺寸過(guò)大時(shí),生成的縮略圖質(zhì)量會(huì)很低”,還有“當(dāng)源圖是一個(gè)Gif圖片且含有透明色時(shí),生成的縮略圖會(huì)將透明色填充成黑色”,如果“在縮略圖較大時(shí)效果也不好,尤其是超過(guò)120”通過(guò)MSDN來(lái)看:

Image.GetThumbnailImage 方法
返回此 Image 對(duì)象的縮略圖。

[Visual Basic]Public Function GetThumbnailImage( _   ByVal thumbWidth As Integer, _   ByVal thumbHeight As Integer, _   ByVal callback As Image.GetThumbnailImageAbort, _   ByVal callbackData As IntPtr _) As Image[C#]public Image GetThumbnailImage(   int thumbWidth,   int thumbHeight,   Image.GetThumbnailImageAbort callback,   IntPtr callbackData);[C++]public: Image* GetThumbnailImage(   int thumbWidth,   int thumbHeight,   Image.GetThumbnailImageAbort* callback,   IntPtr callbackData);[JScript]public function GetThumbnailImage(   thumbWidth : int,   thumbHeight : int,   callback : Image.GetThumbnailImageAbort,   callbackData : IntPtr) : Image;
參數(shù)
thumbWidth
請(qǐng)求的縮略圖的寬度(以像素為單位)。
thumbHeight
請(qǐng)求的縮略圖的高度(以像素為單位)。
callback
一個(gè) Image.GetThumbnailImageAbort 委托。在 GDI+ 1.0 版中不使用此委托。即便如此,也必須創(chuàng)建一個(gè)委托并在該參數(shù)中傳遞對(duì)此委托的引用。
callbackData
必須是 IntPtr.Zero。
返回值
用于表示該縮略圖的 Image 對(duì)象。

備注
如果 Image 對(duì)象包含一個(gè)嵌入式縮略圖像,則此方法會(huì)檢索嵌入式縮略圖,并將其縮放為所需大小。如果 Image 對(duì)象不包含嵌入式縮略圖像,此方法會(huì)通過(guò)縮放主圖像創(chuàng)建一個(gè)縮略圖像。

當(dāng)所請(qǐng)求的縮略圖大小約為 120×120 時(shí),GetThumbnailImage 工作正常。如果從一個(gè)有嵌入式縮略圖的 Image 對(duì)象中請(qǐng)求一個(gè)較大的縮略圖像(比如 300×300),則在縮略圖像的質(zhì)量會(huì)有顯著的降低。通過(guò)調(diào)用 DrawImage 縮放主圖像(而非嵌入式縮略圖),則效果可能較好。

示例
[C#] 下面的示例創(chuàng)建并顯示一個(gè)縮略圖圖像。從不調(diào)用此委托。

[C#] public bool ThumbnailCallback(){return false;}public void Example_GetThumb(PaintEventArgs e){Image.GetThumbnailImageAbort myCallback =new Image.GetThumbnailImageAbort(ThumbnailCallback);Bitmap myBitmap = new Bitmap("Climber.jpg");Image myThumbnail = myBitmap.GetThumbnailImage(40, 40, myCallback, IntPtr.Zero);e.Graphics.DrawImage(myThumbnail, 150, 75);}       
 

關(guān)鍵詞:ASP.NET

贊助商鏈接: