答案 0 :(得分:12)
文件大小为零的.png文件会产生同样的错误。
答案 1 :(得分:11)
您的代码在从Google图片中选择的随机图片上运行正常,因此我猜您正在下载的图片存在某种问题。您可以在Dispatcher.Invoke之前的处理程序中尝试以下代码。
var encoder = new PngBitmapEncoder();
var image = new BitmapImage( new Uri( "MyImage.png", UriKind.Relative ) );
encoder.Frames.Add( BitmapFrame.Create( image ) );
using ( var stream = new FileStream( "MyImage2.png", FileMode.Create, FileAccess.Write ) )
{
encoder.Save( stream );
}
然后使用“MyImage2.png”代替。在将图像加载到画笔之前,尝试让编码器“修复”图像。说实话,虽然这段代码对我有用,但我几乎没有发布这个,因为我不知道它是否适用于你的情况,而且我不喜欢在我不知道结果时发布代码。绝对让我知道它是否有帮助。