Tho*_*air 7 c# wpf image stream
我使用以下代码来流式传输图像源:
BitmapImage Art3 = new BitmapImage();
using (FileStream stream = File.OpenRead("c:\\temp\\Album.jpg"))
{
Art3.BeginInit();
Art3.StreamSource = stream;
Art3.EndInit();
}
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)
"artwork"是应该显示图像的XAML对象.该代码不应该锁定图像,它不会将其锁定好,但也不显示它,默认图像变为"无"......我的猜测是我没有正确使用流,并且我的图像变为空.救命?
更新:
我现在使用以下代码,朋友向我建议:
BitmapImage Art3 = new BitmapImage();
FileStream f = File.OpenRead("c:\\temp\\Album.jpg");
MemoryStream ms = new MemoryStream();
f.CopyTo(ms);
f.Close();
Art3.BeginInit();
Art3.StreamSource = ms;
Art3.EndInit();
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)
由于某些奇怪的原因,此代码返回以下错误:
图像无法解码.图像标头可能已损坏.
我究竟做错了什么?我确信我试图加载的图像没有损坏.
Tho*_*air 11
我设法通过使用以下代码解决问题:
BitmapImage Art3 = new BitmapImage();
FileStream f = File.OpenRead("c:\\temp\\Album.jpg");
MemoryStream ms = new MemoryStream();
f.CopyTo(ms);
ms.Seek(0, SeekOrigin.Begin);
f.Close();
Art3.BeginInit();
Art3.StreamSource = ms;
Art3.EndInit();
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)
谢谢所有试图帮助我的人!
你有没有尝试过:
BitmapImage Art3 = new BitmapImage();
using (FileStream stream = File.OpenRead("c:\\temp\\Album.jpg"))
{
Art3.BeginInit();
Art3.StreamSource = stream;
stream.Flush();
Art3.EndInit();
}
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)