Windows商店应用程序读取和显示图像从ziparchive没有解压文件

本文关键字:ziparchive 文件 图像 显示图 应用程序 读取 显示 Windows | 更新日期: 2023-09-27 18:16:29

我试图直接从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;       
            }

但是得到

cannot seek exception

请帮。

Windows商店应用程序读取和显示图像从ziparchive没有解压文件

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

 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;
    }