Newer
Older
infosystem / sys.js
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;