2011-04-22 53 views
0

我想知道是否存在使用文件爲現有圖像製作縮略圖而不是將其保存到磁盤中的缺點。有沒有與此相關的內存問題?!
我的代碼:使用文件製作縮略圖圖像

// thumbnails.aspx 

protected void Page_Load(object sender, EventArgs e) 
{ 
    string file = Request.QueryString["i"]; 
    if (file == null) 
     return; 
    if (!IsFileExists(file)) 
     return; 
    Thumb(file); 
    } 
public void Thumb(string file) 
{ 
    System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(file)); 
    System.Drawing.Image thumbnailImage = image.GetThumbnailImage(70, 70, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero); 
    System.IO.MemoryStream imageStream = new System.IO.MemoryStream(); 
    thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    byte[] imageContent = new Byte[imageStream.Length]; 
    imageStream.Position = 0; 
    imageStream.Read(imageContent, 0, (int)imageStream.Length); 
    Response.ContentType = "image/jpeg"; 
    Response.BinaryWrite(imageContent); 
} 
+0

我不明白你的問題。你能更清楚地解釋你正在稱重的兩種選擇嗎?而不是使用System.Drawing和GDI,你可以使用System.Windows.Media和WPF,這樣效率更高。 – mrtsherman 2011-04-22 16:34:14

+0

我可以將縮略圖圖像保存在名爲「拇指」的文件夾中,或者我可以將圖像文件發送給特定文件,該文件調用Thumbnail.aspx,然後返回給我一個包含圖像縮略圖的字節[]縮略圖沒有保存到磁盤 – 2011-04-22 16:44:28

+0

有什麼好處讓我使用WPF以上的GDI! – 2011-04-22 16:45:39

回答

0

存放起來文件,然後。每次使用GDI轉換爲縮略圖將使用很多cpu週期。您也可以將圖像存儲在數據庫中而不是磁盤上。

+2

請謹慎使用數據庫,因爲這會在數據庫服務器上使用大量RAM。 – 2011-04-22 18:38:21