2011-10-05 120 views

回答

2

您可以將.ZIP中的單個文件提取到內存流中。 DotNetZip是一個可以做到的圖書館。

這裏是他們的榜樣頁樣本:

using (ZipFile zip = ZipFile.Read(ExistingZipFile)) 
{ 
    ZipEntry e = zip["Image.bmp"]; 
    e.Extract(outputStream); 
} 

您現在有圖像流,你可以用它來設置你的PictureBox來源:

var bmp = new Bitmap(outputStream); 
pictureBox.Image = bmp; 
4

不,你不能從zip中提取圖像來做到這一點。您不一定需要將其提取到臨時文件中,您可以將其提取到內存流中,然後從該流中創建圖像。

+0

Microsoft如何顯示實際存檔(模板)中的辦公室模板的縮略圖?每次我選擇一個PowerPoint模板進行預覽時,都會提取電源點模板文件? – Cornel

+2

首先,PowerPoint是本地代碼,而不是.NET。其次,不需要提取.ZIP的全部內容來獲取.ZIP中單個文件的內容。第三,.ZIP中的縮略圖文件必須「提取」(解壓縮)才能呈現。正如@Cornel所建議的那樣,Office可能會將單個文件解壓到臨時文件夾或直接存儲在內存中。 –