Windows应用商店应用程序从ziparchive读取和显示图像,而无需解压缩文件

时间:2015-10-08 05:30:30

标签: c# windows-store-apps win-universal-app

我试图直接从zip文件显示图片而不提取文件。

  ZipArchiveEntry tumbnail = archive.Entries.Where(s => s.FullName.Equals("coverthumb.png")).FirstOrDefault();
            if (tumbnail != null)
            {                   
                Stream picdata = tumbnail.Open();                 
                await picdata.CopyToAsync (picdata);
                BitmapImage bt = new BitmapImage();                     
                bt.SetSource (picdata.AsRandomAccessStream());
                image.Source = bt;       
            }

但是得到了

  

无法寻求异常

请帮忙。

1 个答案:

答案 0 :(得分:0)

以下代码适用于图像但是当尝试一次读取多个图像时,它会在创建位图时产生无效数据异常

 async public static Task<BitmapImage> GetImageFromZipEntry(ZipArchiveEntry zipentry)
    {
        //for extracting image inside a zip as bitmapimage
        BitmapImage tm = new BitmapImage();
        try {
            if (zipentry != null)
            {
                using (Stream imstream = zipentry.Open())
                {


                    using (MemoryStream immemorystream = new MemoryStream((int)zipentry.Length))
                    {

                        await imstream.CopyToAsync(immemorystream);
                        using (var sourceStream = new MemoryStream(immemorystream.ToArray()))
                        {

                            await tm.SetSourceAsync(sourceStream.AsRandomAccessStream());


                        }
                    }
                }

            }
        }
        catch(Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.Message);
            tm = null;
        }
        return tm;

    }