アップデート:
テスト目的で、使用しました
<input type="text" onClick="doProcess(http://www.abc.com/chart.png)" />
それは機能しませんでした ( alert
URL が渡されたかどうかをテストするために使用されました。アラート ボックスに URL が表示されましたが、デコードに失敗しました)。ある意味で、私は自分の質問の一部に答えました。javascriptを介して画像ファイルを読み取る方法に関するアイデアはありますか?tt
これが HTML 5 関連のコードであることがわかりました。また、ファイルのリストではなくURLを渡しているので、関数for()
からループを削除する必要があると考えました。doProcess()
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);
}
しかし、これもうまくいきません:(
元の投稿
QR 画像ファイルが付属する入力ファイルがあります。
<input type="file" onchange="doProcess(this.files)">
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]);
}
}
この機能は完璧に機能します。問題ありません。この関数の目的は、QR 画像をデコードすることです。まったくの興味と好奇心から、別のことを計画しています。画像ファイルを手動で参照する必要がなくなります。これにより、いくつかのクエリが表示されます。
doProcess(f)
ファイルの代わりに画像の URL を指定した場合、同じアクションを実行できますか? 現在f
、パラメータはファイルです。f
パラメータが URL (例: doProcess(http://www.abc.com/abc.jpg) ) の場合はどうなりますか? デコードプロセスを完了するために呼び出される他のサポート関数が内部にあることは認識していdoProcess()
ますが、それらは渡されるデータのタイプに応じて機能すると想定していdoProcess
ます。f
パラメーターがイメージ URL ではなくイメージ ファイル (ローカル コンピューターで参照して選択) である場合、データ型は何になりf
ますか? 配列か生のバイナリ形式になると思います。
私の意図は、プロセスを研究し、舞台裏で何が起こっているのかを正確に知ることです. 「参照」機能を使用して、QR 画像を正常にデコードしています。
要約すると、ファイルの代わりに保存されている画像の場所を引数として渡すとどうなりますか?
前もって感謝します。