document.getElementById('fileInput').addEventListener('change', function (event) {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function (e) {
const image = new Image();
image.onload = function () {
analyzeBarcode(image);
};
image.src = e.target.result;
};
reader.readAsDataURL(file);
}
});
function analyzeBarcode(image) {
Quagga.decodeSingle(
{
src: image.src,
numOfWorkers: 0, // Web workers を使用しない
inputStream: {
size: 800, // 画像サイズ
},
decoder: {
readers: ["code_128_reader", "ean_reader", "ean_8_reader", "upc_reader"], // サポートするバーコードタイプ
},
},
function (result) {
const resultDiv = document.getElementById('result');
if (result && result.codeResult) {
const barcode = result.codeResult.code;
resultDiv.textContent = `読み取ったバーコード: ${barcode}`;
// 分析結果を保存
saveResult(barcode);
// 保存済み結果を表示
displaySavedResults();
} else {
resultDiv.textContent = "バーコードを検出できませんでした。";
}
}
);
}
function saveResult(barcode) {
const savedResults = JSON.parse(localStorage.getItem('barcodeResults')) || [];
savedResults.push(barcode); // 時刻を含めずバーコードのみを保存
localStorage.setItem('barcodeResults', JSON.stringify(savedResults));
alert("分析結果が保存されました!");
}
function displaySavedResults() {
const savedResults = JSON.parse(localStorage.getItem('barcodeResults')) || [];
const resultDiv = document.getElementById('result');
// 保存済み結果を表示するHTMLを生成
if (savedResults.length > 0) {
let html = '<h3>保存済みの結果:</h3><ul>';
savedResults.forEach((barcode, index) => {
html += `<li>${index + 1}. バーコード: ${barcode}</li>`;
});
html += '</ul>';
resultDiv.innerHTML = html;
} else {
resultDiv.textContent = "保存された結果はありません。";
}
}
// ページ読み込み時に保存された結果を表示
window.onload = displaySavedResults;