2011-10-05 82 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可能会将单个文件解压到临时文件夹或直接存储在内存中。 –