JavaScript

グリーンバック不要・ブラウザだけで画像の背景を透過できる無料ツール「とうかねっこ」を作った話|白背景の白い被写体もきれいに切り抜き

背景を透明にしたいのにPhotoshopはないし、オンラインツールは画像をアップロードするのがなんとなく不安…。しかも白背景の白い被写体はどうやってもきれいに抜けない。そんな地味な困りごとを、ブラウザだけで完結する背景透過ツール「とうかねっこ」にまとめました。色でも領域でもきれいに透け、iPhoneのHEIC写真もそのまま読み込めます。どんなツールでどう使うのかを紹介します。

ブラウザだけでHEICをPNGに変換する方法(heic-to × WebAssembly)

iPhoneで撮った写真をWebツールに読み込ませたら「この画像は開けません」——HEICあるあるですよね。サーバーに画像を送らず、ブラウザの中だけでHEICをPNGに変換したくて、heic-toというライブラリをWebAssemblyで動かしました。ライブラリ選定の理由、約3MBを必要なときだけ読む遅延読込、LGPLとの向き合い方、そして変換中トーストが消えるバグまで、自作ツールに組み込んだ実装の勘所をまとめます。

PWAの自動更新が「古い版のまま」になる原因とキャッシュ制御(_headers / vite-plugin-pwa)

vite-plugin-pwaのautoUpdateは入れたのに、デプロイしても一部のユーザーに古い版が表示され続ける——その犯人はService WorkerではなくCDN/ブラウザのHTTPキャッシュでした。_headersで入口ファイルをno-cacheにする対策を、ケースA(Vite)/ケースB(素のHTML)の使い分けと検証手順まで解説します。

WebサイトにCtrl+Z(Undo / Redo)を実装する方法(Reactのkeydown + 履歴スタック)

Webアプリに Ctrl+Z / Ctrl+Y の Undo・Redo を入れる方法を、自作の画像マスクサイトの実装をもとに解説します。Reactのkeydownイベントで操作を拾い、ops / redoStack という2本の履歴スタックで状態を巻き戻す設計、入力欄でのショートカット無効化やMac/Windows両対応のコツまで、実コード抜粋付きでまとめました。