1
내 앱이 시작될 때 많은 이미지를 미리로드하고 싶습니다. WPF 다운로드 이미지 바이트 BLOB 저장소에서
나는 BLOB 저장소와 클라우드에 저장 그 이미지의 URL을 I 클라우드에서 이미지 바이트를 다운로드 할, 저장 (이 주소는 HTTPS 주소 BTW입니다)가 포함 된 Image
클래스가 이미지를 표시 할 시간이되면 해당 바이트에서 이미지를로드하십시오.
나는이 모든 코드를 가지고,하지만 난 예외가 계속 :
이 작업을 완료하는 데 적합한 없음 이미징 구성 요소가 발견되었다.
public BitmapImage ImageFromBuffer(Byte[] bytes)
{
MemoryStream stream = new MemoryStream(bytes);
stream.Seek(0, SeekOrigin.Begin);
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.EndInit();
return image;
}
그러나 에 : 나는이 전화 화면의 이미지를 얻을 할 때
//Loaded on start-up
private static void LoadImageBytes(Image img)
{
var urlUri = new Uri(img.Url);
var request = (HttpWebRequest)WebRequest.CreateDefault(urlUri);
MemoryStream memStream = new MemoryStream();
using (var response = request.GetResponse())
{
var buffer = new byte[4096];
using (var stream = response.GetResponseStream())
{
int bytesRead = stream.Read(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
memStream.Write(buffer, 0, bytesRead);
bytesRead = stream.Read(buffer, 0, buffer.Length);
}
img.ImageBytes = memStream.ToArray();
}
}
}
후 FIX으로 업데이트 편집 : 여기
내 코드입니다 EndInit() 호출 예외가 발생합니다.
필자는 테스트를 해봤지만 로컬 파일 시스템에서 파일을로드하면 클라우드의 이미지와 다른 바이트 세트를 얻게됩니다. 나는 BLOB 저장소 나 https와 관련 있다고 생각하니?
예, 이미지를 탐색 할 수 있으며 손상되지 않습니다.
편집, 지금은 모두 좋은
잘 모르겠다. – Mark
그것은 틀렸어, 나는 편집을 추가했다. – Mark