結論と対象読者

画像の向きとEXIFを扱う注意は、撮影時の向き情報と実画素の並びを区別し、表示方向を確定してから論理解像度へ縮小する処理です。

この記事は、DotLCD Cameraを利用する人、実装を検討する人、ブラウザごとの制約や安全上の境界を確認したい人を対象にしています。この機能だけで本物の液晶パネルや特定機種を再現するものではありません。低解像度、4階調、均一セル、時間応答という4つの層のうち、どこへ作用するかを明確にして使います。

30秒要約

  • 撮影時の向き情報と実画素の並びを区別し、表示方向を確定してから論理解像度へ縮小する処理です。
  • 入力画像は、カメラ映像または利用者が明示的に選んだ画像から取得します。
  • Web APIへの対応と、DotLCD側での実装済み・有効化済みは別です。
  • 端末内処理は通信を実装しない設計で成立し、API名だけでは外部送信なしを保証しません。
  • 利用時は、機能検出、失敗時の代替、停止手段、実際のネットワーク挙動を確認します。

概要と背景

DotLCD Cameraは、入力を小さな論理解像度へ縮小し、明るさを4段階へ量子化し、各画素を均一なセルとして拡大描画します。さらに必要に応じて、残像、自動露出の遅れ、固定欠陥、色褪せなどの時間・状態表現を加えます。

画像の向きとEXIFを扱う注意は、この処理のすべてを置き換えるものではありません。入力、画素変換、描画、時間応答、保存、アプリ配信のうち、担当範囲を限定します。役割を分けることで、処理結果の違いを説明し、非対応環境では別経路へ切り替えられます。

Web標準は、ファイル、カメラ、Canvas、Worker、録画、キャッシュなどの部品を提供します。一方、4階調の閾値、セル寸法、劣化量、残像時間、プリセット値はDotLCD独自の設計です。

特徴・できること

低解像度・4階調の処理系へ接続できる

どの入力経路や描画バックエンドを使う場合も、最終的には同じ論理解像度、階調閾値、パレット、セル配置へ渡します。これにより、カメラと画像ファイル、Canvas 2DとGPU経路の間で、見た目の規則を共有できます。

安全性と互換性を機能ごとに判断できる

APIが存在するかを確認し、利用できない場合はボタンを無効化するか代替経路を示します。例外を一括して「非対応」とせず、権限拒否、入力不正、メモリ不足、形式非対応、録画失敗などを可能な範囲で分けます。

出力と設定を分離できる

PNGやWebPは現在の見た目を固定する出力です。プリセットJSONは処理条件を保存します。PWAキャッシュはアプリ本体を再利用する仕組みであり、ユーザー画像の保存とは別に扱います。

現在の位置付けと利用上の前提

ブラウザの画像デコーダが向きを適用するか、createImageBitmap()imageOrientation指定をどう扱うかは実装経路と対応状況を確認します。元ファイルのEXIFを再利用する場合、位置情報など向き以外の項目を誤って保持しないよう分離します。

Web標準に機能が存在しても、DotLCD Cameraで実装済みとは限りません。また、MDNで広く利用可能とされるAPIでも、OS、ブラウザ、埋め込みWebView、権限設定、ハードウェアによって一部機能が使えない場合があります。2026年7月24日時点の確認として、公開時には対象ブラウザの互換表と実機挙動を再確認してください。

端末内処理を掲げる場合は、画像または派生データを送るfetch()、XMLHttpRequest、WebSocket、外部SDKがないことを実装とNetworkログで確認します。PWAやService Workerは通信を仲介できるため、オフライン対応そのものをプライバシー保証と混同しません。

近い対象との比較

見た目が正しい向きで描画されることと、元EXIFが書き出し画像へ保持されることは別です。Canvas再エンコードでは元メタデータがそのまま維持されるとは限りません。

対象主な役割DotLCDでの扱い
論理解像度入力情報量を減らすすべての表現の基礎
4階調化明るさを4段階へ割り当てるパレットとは別に管理
均一セル論理画素を同じ形で表示するCRT風表現と区別
時間応答遅れ、残像、段階変化を扱う静止画処理と分離
入出力・配信API画像取得、保存、オフライン化非対応時の代替を用意

確認/試行の条件と注意点

  1. 画像ファイルだけを使い、カメラ権限なしで基本変換を確認します。
  2. 対象機能を無効化した状態と有効化した状態を同じ入力で比較します。
  3. エラー時に画像読込、PNG保存、Canvas 2Dなどの代替が実際に表示されるか確認します。
  4. 開発者ツールのNetworkで、画像読込後やカメラ開始後に予期しない送信がないか確認します。
  5. 大きな画像、向き情報付き画像、非画像ファイル、複数ファイルで失敗処理を確認します。
  6. キーボードだけで開始、停止、ファイル選択、設定変更、保存ができるか確認します。
  7. 点滅、残像、露出変化を停止または弱められるか確認します。
  8. 別ブラウザまたはプライベートウィンドウで、キャッシュや権限に依存しない初回挙動を確認します。

未実装の機能は、操作できるように見せず「試験中」「要確認」「現在は利用不可」など明確な状態を示します。将来候補のAPIを、現在の必須要件や対応済み機能として説明しないことが重要です。

参考リンク