2013-10-17 11 views
11

Chcę wyodrębnić dane EXIF ​​ze zdalnych obrazów przy użyciu Javascript. W tej chwili działa OK, ale robi się dość wolno, gdy obraz jest duży, ponieważ pobieram cały obraz przed wyodrębnieniem danych EXIF.Czy można pobrać część obrazu zdalnego w javascript?

Dane EXIF ​​znajdują się zawsze w obrębie pierwszych 128kb obrazu (uważam), więc naprawdę nie potrzebuję całego obrazu.

Czy można w jakiś sposób pobrać tylko XXX KB pliku zdalnego za pomocą JS?

+9

@AkshayKhandelwal: Właściwie możesz. Zobacz nagłówek 'Range:'. – SLaks

+0

Zamiast tego możesz wydobyć te informacje z wyprzedzeniem, może zapisać je w swojej bazie danych. W ten sposób dostępne są te informacje. – Ibu

+0

Hej, dobrze wiedzieć. Nie wiedziałem o nich wszystkich. Wspaniale, że pomogliście mi zrozumieć to samo –

Odpowiedz

7

range request działa dobrze:

$.ajax({ // assuming that you use jQuery 
    url: 'http://example.com/images/001.jpg', 
    headers: { 
     range: 'bytes=0-131071' // inclusive 
    }, 
    complete: function (xhr) { 
     var data = xhr.responseText; 
     console.log(data.length); // 131072 
     console.log(xhr.status); // 206 
     yourExifParser(data); 
    } 
}); 

demo online: http://jsfiddle.net/9CknY/1/

Ale same-origin-policy dotyczy.

Powiązane problemy