2012-12-18 11 views
5

Powiel możliwe:
How to convert an image object to a binary blobJak wczytać załadowany obraz do obiektu typu blob?

Jestem stoi ograniczenia polityki tego samego pochodzenia podczas ładowania obrazów zdalnych. Jednak obiekt obrazu DOM 0 może być użyty do załadowania zdalnego zasobu (jest to zasadniczo to samo co tworzenie znacznika <img />).

var fr = new FileReader(), 
    img = new Image(); 

img.src = 'http://distilleryimage8.s3.amazonaws.com/6cf25568491a11e2af8422000a9e28e9_7.jpg'; 

img.onload = function() { 
    // how to get this image as a Blob object? 
}; 

Czy istnieje sposób na odczytanie tego zasobu do obiektu Blob/arraybuffer? To nie jest duplikat How to convert an image object to a binary blob, ponieważ ten drugi nie powstaje z problemami z tym samym początkiem.

+0

Możesz umieścić obraz na płótnie, a następnie odczytać płótno jako kropelkę. Myślę. Nie jestem pewien, jak używać płótna, ale myślę, że możesz to zrobić. –

+0

To właściwie brzmi wiarygodnie! Spróbuję go i opublikuję aktualizację, jeśli zadziała. – Gajus

+0

Idź po to. Powodzenia! :-D –

Odpowiedz

2

Moim zdaniem można to osiągnąć bez większego bólu ...

Wystarczy jeden element HTML5. Podczas korzystania z canvas można narysować na nim zdalny obraz. Po uzyskaniu obrazu dataUrl jest dość łatwe, masz taką funkcję z interfejsu API obszaru roboczego. Następnym krokiem jest użycie metody FileReadera o nazwie readAsDataURL.

Nie próbowałem tego, ale teoretycznie powinno działać.

  • Edycja: Nie zadziała. Jeśli obraz pochodzi z innego źródła, nie można użyć metody płótna toDataURL. Więc nie sądzę, że istnieje rozwiązanie bez strony serwera.
+1

Wystarczy udowodnić, że to nie działa, http://jsbin.com/apabor/1/edit dla tych (jak ja), którzy chcą być pewni. – Gajus

+0

Tak, domyślam się, że potrzebujesz węzła, php lub czegoś innego po stronie serwera ... –

+0

@MinkoGechev Czy w międzyczasie są jakieś nowości na ten temat? – danijar

Powiązane problemy