none
WinRT 的printsample示例中,有内存不足的问题,该如何解决呢? RRS feed

  • 问题

  • 求助各位,在win 10 的Windows Universal Apps的示例PrintSample中,最后一个选项的打印photos功能,若打印图片比较大,如一张图片有18M大小,就会出现内存不足的情况,这种该如何处理呢?之前Win8/8.1平台的也有同样的问题



    2015年7月28日 1:25

全部回复

  • 你好 jingjing.tang,

    我觉得主要问题还是出在Win10示例里面的LoadBitmapAsync方法上,我这没这么大的照片做测试,你能发下你的测试图片到网盘上给我下载一下么?

    如果是我来调试的话,我会把断点设置在以下方法里:

      private async Task<WriteableBitmap> LoadBitmapAsync(Uri source, bool landscape)

    看看哪一段报的异常。另外考虑一下把这个18M的图片在转换的时候进行一些缩小的操作。比如设置Scale:

    https://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.imaging.bitmaptransform

    因为我看这里的代码是这么写的:

    BitmapTransform transform = new BitmapTransform();
                    transform.Rotation = BitmapRotation.None;
                    uint width = decoder.PixelWidth;
                    uint height = decoder.PixelHeight;
    这是按原图来设置了,感觉18M的话会很大。但是具体怎么来我还需要来测试一下,或者你也可以先试试。

     


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年7月29日 8:09
    版主
  • HI,感谢您的回复,我的异常是出在LoadBitmapAsync方法的WriteableBitmap^ bitmap = ref new WriteableBitmap(static_cast<int>(width), static_cast<int>(height));这句

    另外,我想问下,如果把图片进行缩小处理,打印出来的图片会是原样的吗,会不会失真呢?

    我将示例代码做了些删减,上传到网盘,麻烦您下载一下:http://pan.baidu.com/s/1ntJ0Xlf

    谢谢~

    2015年7月30日 5:27