Chrome拡張のコードを1行も書く前に、多くのチームが省略することをしました:Chromeウェブストアのあらゆる画像圧縮拡張機能を調査したのです。レビュー数で上位20件をインストールし、実際の写真で試し、星1つのレビューを読み、インストール数を確認しました。
見えてきたのは、十分に満たされておらず、かつ誤解されている市場でした。
そう — 公式の TinyPNG Chrome拡張のインストール数は1000未満です。Chromeウェブストア全体で最も上位の画像圧縮ツールでさえ、インストール数は1000前後、評価は星3.8をうろついています。
これは需要がないという意味ではありません。需要はあります — キーワード「image compressor」は世界で月間9万回超検索されています。ではなぜ拡張機能はこれほど使われないのでしょう?
2つのパターンがそれを説明します:
私たちは、この両方の面でもっと良くできると考えました。
拡張機能の意義のすべて — 新しいタブでWebアプリを開くのに対し — は、Webアプリが届かない瞬間に手が届くことです。具体的には:
これらの瞬間はどれも「新しいタブを開いてファイルをドラッグ」ではうまく満たせません。だからこそ私たちは、ブラウザ内の特定の瞬間に合わせた4つの異なる入口でImgMin Chrome拡張を作りました。
任意のページの任意の画像を右クリック。「ImgMinで圧縮」を選択。小さなオーバーレイがページ自体の右下に開きます — 新しいタブでも、popupでもありません。元のサイズ、圧縮後のサイズ、ダウンロードボタンが見えます。品質プリセットは3つ。完了。
このオーバーレイは閉じたshadow DOMを持つサンドボックス化iframeを使うため、表示中のページはその中身を読めません。画像データはメモリ内にのみ存在します。
ページの背景(画像の上ではなく)を右クリック。「このページの全画像を圧縮」を選択。新しいタブが開き、元ページのすべての <img> をサムネイルのグリッドで表示します(最大50枚、重複除去済み)。必要なものを選び、品質プリセットを選び、「ZIPをダウンロード」を押します。
ZIPは同梱のJSZipライブラリでブラウザ内で構築されます — ネットワーク往復なし、第三者CDNなし。すべてオフラインで動作します。
これはWebアプリが再現できない機能です:今まさに見ているページにどの画像があるかを知っているのは、拡張機能だけです。
アップロード支援を有効にします。これで、ファイル選択のあるサイト — Gmail、Twitter、Slack、あなたのCMS — で大きな画像(既定のしきい値:2MB)を選ぶたびに、右下に小さなトーストが現れます:「sunset.jpg · 5.2 MB。送信前に圧縮しますか?[圧縮して差し替え][スキップ]」。
圧縮をクリックすると、アップロード入力欄の元ファイルが標準のDataTransfer APIで圧縮版に差し替えられ、フォームのchangeイベントが再び発火します。サイトはより小さいファイルを見て、通常どおり処理を続けます。
全体で無効化したり、ドメインごとのスキップ一覧を設定したり、設定でしきい値を変更したりできます。これは静かな生産性の倍増装置です — リサイズしていないスマホ写真でどれほど帯域を浪費していたか、多くの人は気づいていません。
HEIC形式のiPhone写真は何年もの間、特にネイティブで開けないWindowsやLinuxのマシンで悩みの種でした。ImgMinはWebAssembly版libheifデコーダ(約1MB、必要なときだけ遅延読み込み)を同梱し、HEIC → JPG / WebP をすべてブラウザ内で変換します。
.heic ファイルをpopupにドラッグすると、ImgMinがデコードし、圧縮し、どんな端末でも開ける形式でダウンロードを提供します。別の変換ツールも、出所の怪しい「無料HEIC→JPG」サイトへのアップロードも不要です。
ほとんどの「プライベート」なツールは、あなたがそのプライバシーポリシーを信用することに頼ります。私たちは別のアプローチを取りました:プライバシーがポリシーではなく技術的性質になるようにシステムを設計したのです。
| 機能 | ImgMin | TinyPNG型の拡張 |
|---|---|---|
| 画像データがブラウザを出る | なし | あり(サーバーへ) |
| 圧縮中のネットワークリクエスト | ゼロ | 複数 |
| アカウントが必要 | 不要 | 多くは必要 |
| オフラインで動作 | する | しない |
| 追跡クッキー | なし | まちまち |
| オープンソース | MIT | クローズド |
圧縮自体は、ブラウザに内蔵された HTML5 Canvas API 上で動きます。HEICデコードは同梱のWASMモジュール上で、これもローカルで動作します。拡張の唯一の外向きリクエストは、フッターにある任意の「ImgMin Webを開く」リンクで、これは当然あなた自身がクリックする必要があります。
これらすべてを自分で確認したいなら、ソースコードはすべて github.com/hunkwu/imgmin にあります。
imgmin.pro のWebアプリはすでに6言語(English、中文、日本語、Français、Deutsch、Español)に対応しています。Chrome拡張を英語のみで出すのは愚かでした — Chromeのユーザー層はWeb全体よりもっと国際的で、少なくありません。
そこで拡張は chrome.i18n.getUILanguage() でブラウザ言語を自動検出し、UI全体 — popup、ページ内オーバーレイ、一括ページ、アップロードトースト、設定、さらには右クリックメニューのタイトルまで — をあなたの言語で表示します。設定で選択を上書きすることもできます。
v1.3は上記の4つの入口とともにリリースされます。最初のリリースを引き締めるため、意図的に見送ったもの:
ImgMinはCanvas APIを使ってすべてブラウザ内で動き — 画像データがサーバーに送られることは一切ありません。TinyPNGの無料サービスは画像を圧縮サーバーにアップロードし、24時間保持してから削除します。機密画像(身分証写真、医用スキャン、個人的な思い出)には、この違いが重要です。ImgMinはさらに、TinyPNGの拡張にはないページ一括、アップロード自動提案、HEIC対応を備えています。
3つの理由:(1) 右クリックした画像を読む、(2) ページ一括を実行したときに <img> タグを列挙する、(3) アップロード支援を有効にしている場合にファイル選択を監視する。拡張は受動的で — あなたが明示的に機能を呼び出したときだけ動作します。他のページ内容を読み取ったり、収集したり、送信したりは決してしません。完全な開示は extension-privacy.html に。
します。インストール後、拡張は圧縮中にネットワークリクエストをゼロしか出しません。Canvas APIと同梱のlibheif WASMデコーダはローカルで動作します。機内モード、インターネットのない社内ネットワーク、その他あらゆるオフライン状況で画像を圧縮できます。
ユーザーが画像圧縮ツールを入れるのは、ファイルを小さくしたいからです。最大圧縮を先頭に置くのはその意図に合います。ImgMinの「最小」プリセットは品質0.70を使い — 大多数の写真で顔・文字・ディテールを保ちながら約75%のサイズ削減を実現します。きれいな仕上がりが必要なら「最高品質」はワンクリックです。
はい — Chrome拡張もimgmin.pro Webアプリも、どちらも github.com/hunkwu/imgmin にあります。コードは監査可能です。プライバシーの主張をご自身で確認できます。
ページ内の右クリック圧縮にはChrome拡張を、高度なプリセットで最大20枚を一括処理するにはWebアプリをご利用ください。
ImgMinをChromeに追加 → Webアプリを試す →2026年5月15日公開。インストール数は執筆時点のChromeウェブストアより。拡張は無料で、MITライセンスのオープンソースです。