2013-05-19 2 views
1

이미지의 URL을 반환하는 내부 API (제어 할 수 없음)가 있습니다. 나는 URL을 검사하고 형식은 다음의 것으로 나타났습니다 :(blob : // xxx 유형의) 데이터 URL을 IRandomAccessStream으로 변환합니다.

blob://xxxxxxxx 

내 코드에서 img.src의 값으로이 URL을 사용, 그리고 완벽하게 이미지를 표시합니다. 이제이 URL을 IRandomAccessStream 개체로 변환하여 다른 내부 API를 호출 할 수 있습니다.

var uri = new Windows.Foundation.Uri(imgUrl); 
var streamRef = RandomAccessStreamReference.createFromUri(uri); 
streamRef.openReadAsync(function (stream) { 
    // stream is of type IRandomAccessStream 
    // make internal API call here 
}, error); 

그러나, 나는이 openReadAsync 호출 내 오류 핸들러 함수에 "구현되지 않음"오류 메시지가 :

나는 다음을 시도했다.

BLOB URL을 IRandomAccessStream으로 변환하는 다른 방법이 있습니까?

답변

1

다음 코드는 형식의 URL (blob : B0939E98-128B-4BA3-B8D6-B499E7F6C612)에서 blob 객체에 대한 액세스를 제공합니다. 이것은 w3 File API spec section 12.7에 따른 것입니다.

// url like example: blob:B0939E98-128B-4BA3-B8D6-B499E7F6C612 
WinJS.xhr({ url: url, responseType: 'blob'}).then(function (req) 
{ 
    var blob = req.response; 
}).then(null, function onerror() 
{ 
    // handle error 
}); 

그런 다음 FileReader api을 사용하면 blob의 내용을 읽을 수 있습니다. FileReader API의 경우 mozilla doc link IRandomAccessStream을 구축해야하는 특별한 이유가있는 경우 BLOB 객체를 IRandomAccessStream으로 변환하는 탐색기가 필요합니다.

+0

감사합니다. 그게 효과가 있었어! –

+0

filereader 또는 blob을 randomaccessstream으로 변환하여 읽었습니까? 메모가 다른 사람을 도울 수 있습니다. – Sushil