# #024 Calendar — JAN画像撮影／写真読込 v1.0.273 (Candidate)

仕訳伝票画面にカメラ起動→撮影、スマホで撮影（`capture="environment"`）、保存済みの写真の読み込み、画像プレビュー、JAN自動検出、手入力、商品名欄を追加。

- 画像解析はブラウザ内のみ。ブラウザの標準 `BarcodeDetector` を優先し、非対応時には横向きのEAN-13/EAN-8をサンプリングするローカル実装で再試行する。認識できない場合は手入力できる。対応画像15MB以内、ブラウザがデコード可能な画像形式のみ。
- JANのチェックデジットを検算。既知コード4902102107341と4902102107648を初期辞書に搭載。利用者がJANと商品名を「記憶」した場合だけ、この端末のlocalStorageへ紐づける。写真本体はlocalStorage/IndexedDB/SQLite/サーバーへ保存しない。
- 「商品情報をネットで検索」をユーザーが明示的に押した時だけ、JANコードをOpen Food Facts (外部公開DB) に送信。未収録品・CORS制限・通信障害では商品名を手入力する。画像は第三者に送信しない。
- 「伝票の摘要へ反映」は既存説明欄へ商品名/JANを付けるだけ。金額・科目・番号・保存済み伝票・給与パターン・既存マスターを変更せず、SQLiteへ自動保存しない。ユーザーが最終確認して「伝票を保存」する。
- ライブカメラはHTTPS/localhostの安全なコンテキストと利用者の許可が必要。モバイル撮影はOSのファイルピッカーに依存。閉じる/停止でメディアトラックを閉じる。

# 非保証
- 写真撮影だけで全商品を自動検索できるわけではない。ブラウザ/カメラ環境によって画像JAN認識性能に差がある。
- 外部商品DBの網羅性は保証されず、誤登録もあり得る。実物と突き合わせる。
- ユーザーのWindows Edge/モバイル端末で実撮影は未検証。開発状態 NOT COMPLETED。

## v1.0.274 自動認識の改良
- カメラプレビュー中に約1秒間隔でJAN認識を試行し、認識すれば自動的にJAN・商品名欄へ表示。撮影ボタンは引き続き利用可能。
- 写真／撮影時の端末内ローカル解析を多角度・複数閾値のライン走査で補強。標準BarcodeDetectorに非対応のEdgeも、外部CDNへのアクセスなしでフォールバックする。
- ピント不良や画素不足の写真は復元できない。JANを推測で埋めず、再撮影／手入力を案内する。
- 画像は外部送信なし。事業データ／SQLite／#029 Frozenは変更しない。
