Tôi đang cố gắng làm một điều đơn giản nhưng tôi không thể ...Đồng bộ tải xuống hình ảnh từ URL
Tôi chỉ muốn lấy BitmapImage từ URL internet, nhưng chức năng của tôi dường như không hoạt động đúng, nó chỉ trả lại cho tôi một phần nhỏ của hình ảnh. Tôi biết WebResponse đang hoạt động không đồng bộ và đó chắc chắn là lý do tại sao tôi có vấn đề này, nhưng làm cách nào tôi có thể thực hiện nó một cách đồng bộ?
Đây là chức năng của tôi:
internal static BitmapImage GetImageFromUrl(string url)
{
Uri urlUri = new Uri(url);
WebRequest webRequest = WebRequest.CreateDefault(urlUri);
webRequest.ContentType = "image/jpeg";
WebResponse webResponse = webRequest.GetResponse();
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = webResponse.GetResponseStream();
image.EndInit();
return image;
}
Cảm ơn rất nhiều sự giúp đỡ của bạn.
Tôi không có nhiều may mắn với nó, hình ảnh của tôi vẫn được tải xuống một phần vào MemoryStream, có lẽ bạn có thể cung cấp cho tôi mã mẫu? – Karnalta
Khi đọc từ luồng phản hồi, nó sẽ không lấp đầy bộ đệm, như trường hợp khi đọc từ một tệp cục bộ. Vì vậy, số lượng byte đọc sẽ nhỏ hơn kích thước của bộ đệm. Tuy nhiên nó sẽ lớn hơn 0, cho biết rằng chưa kết thúc tệp. Tôi cho rằng đây là chìa khóa của sự thất bại khi đọc hình ảnh hoàn toàn từ url. – treaschf
Ok tác phẩm mẫu này để tải xuống hình ảnh, bây giờ tôi có thể chuyển đổi tệp đó thành BitmapImage. – Karnalta