如何在Windows运行时将byte []转换为BitmapImage?

时间:2014-12-15 15:43:43

标签: c# xaml windows-phone-8 optimization windows-runtime

我有一个字节数组的图像,想要在UI中显示它们。

我的代码有效,但需要大量内存,大约10张图片应用程序崩溃。

foreach (var cake in cakes)
{
    var bytes = await Helper.GetImage(cake.Url);

    if (bytes != null)
    {
        using (MemoryStream memoryStream = new MemoryStream())
        {
            await memoryStream.WriteAsync(bytes, 0, bytes.Length);

            using (var ras = memoryStream.AsRandomAccessStream())
            {
                ras.Seek(0);

                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
                {
                    WriteableBitmap writeableBitmap = new WriteableBitmap(120, 120);
                    writeableBitmap.SetSource(ras);
                    cake.Thumbnail = writeableBitmap;
                });
            }
        }
    }
}

返回的bytes值是一个完整尺寸的图像,但我想将它作为缩略图来占用更少的内存。

我也在探查器Cycle Detected中看到了。

如何以更优化的方式获取图像字节数组的缩略图?我的代码中导致内存泄漏的问题是什么?

0 个答案:

没有答案