2017-02-16 21 views
1

在PCL中使用以下代码时,我得到一个ArgumentNullException参数名称codecSkiaSharp和Xamarin.Forms - 无法解码PNG

using (var stream = new SKFileStream("image.png")) 
using (var bitmap = SKBitmap.Decode(stream)) { 
    ... 
} 

SKBitmap.Decode引发异常。我可以验证图像是一个有效的PNG文件,并且该流的长度大于0.

是否需要单独安装编解码器?我在样本中没有看到任何关于它的信息。

+0

你能够分享完整的例外吗?如果可能的话,PNG?而且,还有其他PNG工作吗? – Matthew

+1

SkiaSharp包含了所有的编解码器,所以不需要额外的东西。 – Matthew

+0

@Matthew - 感谢您的输入,您指引我朝着正确的方向前进。请参阅下面的答案。你在SkiaSharp团队中,对吗?未来可能会添加对pngcrush的图像的支持吗? –

回答

1

通过在iOS构建设置下禁用PNG优化(pngcrush),我能够解决问题。

+0

不幸的是,这是谷歌的回应:“这是一个专有的png格式,只有iOS支持。我们没有计划支持这个” https://groups.google.com/forum/#!searchin/skia-discuss/ png $ 20ios%7Csort:相关/ skia-discuss/nbRQI7pfqbw/go5v1nF6CwAJ – Matthew

+1

无赖。再次感谢你的帮助。 –