这可能听起来很简单,但我注意到它不适合我!我想将一个简单的jpg或其他格式图像从互联网保存到硬盘。我使用以下代码从网上获取图像。如何将其保存到硬盘?
BitmapImage posterBitmap = new BitmapImage(new Uri(imageLocationOnNet, UriKind.Absolute));
如果有人能给我一个简单的代码示例并解释它是如何工作的,我会很感激 最好在C#和Windows Universal App兼容,谢谢。
EDIT。我也有兴趣知道是否可以将BitmapImage转换为JSON并从那里读回来?
答案 0 :(得分:0)
我猜你看起来不太简单的原因是你在错误的地方看
位图源和位图图像仅用于加载图像,保存功能在编码器中,例如PngEncoder
一旦选择了正确的编码器,您只需将图像作为一个帧添加到其中,然后将其保存到流中
encoder.Frames.Add(BitmapFrame.Create(image));
encoder.Save(stream);
答案 1 :(得分:0)
找到here。创建该图像时,下载它需要一些时间。您可以查看是否使用
下载posterBitmap.IsDownloading
完成后,添加处理程序
posterBitmap.DownloadCompleted += posterBitmap_DownloadCompleted;
然后编写保存图像的功能
private void objImage_DownloadCompleted(object sender, EventArgs e)
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
Guid photoID = System.Guid.NewGuid();
String photolocation = photoID.ToString() + ".jpg"; //file name
encoder.Frames.Add(BitmapFrame.Create((BitmapImage)sender));
using (var filestream = new FileStream(photolocation, FileMode.Create))
encoder.Save(filestream);
}