結論と対象読者
PWAでオフライン利用する範囲は、アプリ本体と必要な静的資産を事前キャッシュし、ネットワークなしでも画像変換の主要機能を開ける範囲です。
この記事は、DotLCD Cameraを利用する人、実装を検討する人、ブラウザごとの制約や安全上の境界を確認したい人を対象にしています。この機能だけで本物の液晶パネルや特定機種を再現するものではありません。低解像度、4階調、均一セル、時間応答という4つの層のうち、どこへ作用するかを明確にして使います。
30秒要約
- アプリ本体と必要な静的資産を事前キャッシュし、ネットワークなしでも画像変換の主要機能を開ける範囲です。
- 入力画像は、カメラ映像または利用者が明示的に選んだ画像から取得します。
- Web APIへの対応と、DotLCD側での実装済み・有効化済みは別です。
- 端末内処理は通信を実装しない設計で成立し、API名だけでは外部送信なしを保証しません。
- 利用時は、機能検出、失敗時の代替、停止手段、実際のネットワーク挙動を確認します。
概要と背景
DotLCD Cameraは、入力を小さな論理解像度へ縮小し、明るさを4段階へ量子化し、各画素を均一なセルとして拡大描画します。さらに必要に応じて、残像、自動露出の遅れ、固定欠陥、色褪せなどの時間・状態表現を加えます。
PWAでオフライン利用する範囲は、この処理のすべてを置き換えるものではありません。入力、画素変換、描画、時間応答、保存、アプリ配信のうち、担当範囲を限定します。役割を分けることで、処理結果の違いを説明し、非対応環境では別経路へ切り替えられます。
Web標準は、ファイル、カメラ、Canvas、Worker、録画、キャッシュなどの部品を提供します。一方、4階調の閾値、セル寸法、劣化量、残像時間、プリセット値はDotLCD独自の設計です。
特徴・できること
低解像度・4階調の処理系へ接続できる
どの入力経路や描画バックエンドを使う場合も、最終的には同じ論理解像度、階調閾値、パレット、セル配置へ渡します。これにより、カメラと画像ファイル、Canvas 2DとGPU経路の間で、見た目の規則を共有できます。
安全性と互換性を機能ごとに判断できる
APIが存在するかを確認し、利用できない場合はボタンを無効化するか代替経路を示します。例外を一括して「非対応」とせず、権限拒否、入力不正、メモリ不足、形式非対応、録画失敗などを可能な範囲で分けます。
出力と設定を分離できる
PNGやWebPは現在の見た目を固定する出力です。プリセットJSONは処理条件を保存します。PWAキャッシュはアプリ本体を再利用する仕組みであり、ユーザー画像の保存とは別に扱います。
現在の位置付けと利用上の前提
PWAであることだけではオフライン動作しません。Service WorkerとCache Storageで、HTML、JavaScript、CSS、アイコン、必要なローカル資産を明示的に保存します。カメラやローカル画像の処理はネットワーク不要でも、初回アクセス、更新確認、外部フォント、解析、クラウド保存は別です。
Web標準に機能が存在しても、DotLCD Cameraで実装済みとは限りません。また、MDNで広く利用可能とされるAPIでも、OS、ブラウザ、埋め込みWebView、権限設定、ハードウェアによって一部機能が使えない場合があります。2026年7月24日時点の確認として、公開時には対象ブラウザの互換表と実機挙動を再確認してください。
端末内処理を掲げる場合は、画像または派生データを送るfetch()、XMLHttpRequest、WebSocket、外部SDKがないことを実装とNetworkログで確認します。PWAやService Workerは通信を仲介できるため、オフライン対応そのものをプライバシー保証と混同しません。
近い対象との比較
インストール可能性とオフライン可能性は関連しますが同一ではありません。ホーム画面へ追加できても、必要資産がキャッシュされていなければオフラインで開けません。
| 対象 | 主な役割 | DotLCDでの扱い |
|---|---|---|
| 論理解像度 | 入力情報量を減らす | すべての表現の基礎 |
| 4階調化 | 明るさを4段階へ割り当てる | パレットとは別に管理 |
| 均一セル | 論理画素を同じ形で表示する | CRT風表現と区別 |
| 時間応答 | 遅れ、残像、段階変化を扱う | 静止画処理と分離 |
| 入出力・配信API | 画像取得、保存、オフライン化 | 非対応時の代替を用意 |
確認/試行の条件と注意点
- 画像ファイルだけを使い、カメラ権限なしで基本変換を確認します。
- 対象機能を無効化した状態と有効化した状態を同じ入力で比較します。
- エラー時に画像読込、PNG保存、Canvas 2Dなどの代替が実際に表示されるか確認します。
- 開発者ツールのNetworkで、画像読込後やカメラ開始後に予期しない送信がないか確認します。
- 大きな画像、向き情報付き画像、非画像ファイル、複数ファイルで失敗処理を確認します。
- キーボードだけで開始、停止、ファイル選択、設定変更、保存ができるか確認します。
- 点滅、残像、露出変化を停止または弱められるか確認します。
- 別ブラウザまたはプライベートウィンドウで、キャッシュや権限に依存しない初回挙動を確認します。
未実装の機能は、操作できるように見せず「試験中」「要確認」「現在は利用不可」など明確な状態を示します。将来候補のAPIを、現在の必須要件や対応済み機能として説明しないことが重要です。