Czytaj / Przetwarzaj obraz przez javascript, przekazując jego URL - podobny do file_get_contents w PHP?
AKTUALIZACJA:
Do celów testowych użyłem
<input type="text" onClick="doProcess(http://www.abc.com/chart.png)" />
To nie zadziałało (używanealert
przetestować, czy przekazywano url. Pole alertów pojawiło się z adresem URL, ale dekodowanie nie powiodło się). W pewnym sensie osobiście odpowiedziałem na część mojego pytania. Wszelkie pomysły dotyczące odczytywania pliku obrazu za pomocą javascript? Tt
Właśnie odkryłem, że jest to kod związany z HTML 5. Pomyślałem też, że skoro przekazuję url zamiast listy plików, muszę usunąćfor()
pętla oddoProcess()
funkcja, która byłaby
function doProcess(f)
{
var o=[];
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
gCtx.clearRect(0, 0, gCanvas.width, gCanvas.height);
qrcode.decode(e.target.result);
};
})(f);
reader.readAsDataURL(f);
}
Ale to też nie działa :(
ORYGINALNY POST
Mam plik wejściowy, do którego dostarczany jest plik z obrazem QR.
<input type="file" onchange="doProcess(this.files)">
funkcja doProcess
function doProcess(f)
{
var o=[];
for(var i =0;i<f.length;i++)
{
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
gCtx.clearRect(0, 0, gCanvas.width, gCanvas.height);
qrcode.decode(e.target.result);
};
})(f[i]);
reader.readAsDataURL(f[i]);
}
}
Ta funkcja działa doskonale. Żadnych problemów. Celem tej funkcji jest dekodowanie obrazu QR. Teraz z czystego zainteresowania i ciekawości planuję zrobić coś innego -usuń potrzebę ręcznego przeglądania pliku obrazu. To prowadzi mnie do kilku pytań:
Czy to możliwedoProcess(f)
wykonać te same czynności, jeśli dostarczono im adres URL obrazu zamiast pliku? Obecnief
parametr jest plikiem. Co się stanie jeślif
parametr jest adresem URL (na przykład: doProcess (http://www.abc.com/abc.jpg))? Zdaję sobie sprawę, że w środku są inne funkcje wsparciadoProcess()
również wywoływany w celu zakończenia procesu dekodowania, ale zakładam, że będą one działać zgodnie z typem przekazywanych danychdoProcess
.
Jeślif
parametr to plik obrazu (przeglądany na komputerze lokalnym i wybrany) zamiast adresu URL obrazu, jaki typ danych będzief
być? Zgaduję, że będzie to tablica lub jakaś surowa forma binarna.
Moim zamiarem jest zbadanie tego procesu i wiedzieć, co dokładnie dzieje się za kulisami. Korzystając z funkcji przeglądania, obraz QR jest dekodowany z powodzeniem.
Podsumowując, co się stanie, jeśli podam lokalizację obrazu zapisanego jako argument zamiast pliku?
Z góry dziękuję.