ImageSquoosher(MozJPEG で写真・画像を複数一括で高画質に圧縮・リサイズできる Windows / macOS 向けツール)を開発しました

このブログを購読している方がいるかわかりませんがお久しぶりです。
おそらく半年以上ぶりの投稿になります…。

さて、今回はImageSquoosher(イメージスカッシャー)という、写真や画像を、

  • エクスプローラーや Finder の右クリックメニューから
  • アスペクト比変更もリサイズも
  • 複数ファイル一括で
  • ファイル名に _resized など任意指定のサフィックスをつけて
  • 必要に応じて位置情報が含まれる EXIF を除去して
  • 入力ファイルごとに同じフォルダに
  • MozJPEG で通常よりも高圧縮に

保存できる、『利用頻度がそこまで高いわけではないが、地味にあると便利』な Windows / macOS 両対応のツールを開発しましたので、そのご紹介です。

私は従来から JPEG 画像を画質を保ったままリサイズできる Squoosh という Google 製の Web アプリを使っていたのですが、ざっくり言えば「Squoosh の JPEG 保存部分を使いやすく Web アプリにした」ものとなります。

GitHub – tsukumijima/ImageSquoosher: ImageSquoosher: MozJPEG で画像を複数一括で高画質に圧縮・リサイズできる Windows / macOS 向けツール
ImageSquoosher: MozJPEG で画像を複数一括で高画質に圧縮・リサイズできる Windows / macOS 向けツール – tsukumijima/ImageSquoosher

ダウンロードはこちらから!
操作感は使ってみないとわからないと思うので、まずはぜひお試しください!
Windows 11 / macOS 14 以降で動作を確認しています。Windows ではインストール不要で、解凍したフォルダを任意のパスに配置するだけで動きます。

Releases · tsukumijima/ImageSquoosher
ImageSquoosher: MozJPEG で画像を複数一括で高画質に圧縮・リサイズできる Windows / macOS 向けツール – tsukumijima/ImageSquoosher

ソニー α カメラユーザーの方は、カメラの未取り込み画像・動画を確実に『日付ごとにフォルダ分けして』取り込んでくれるアプリ「α Import Utility」もぜひお試しください!

今年1月頃に自分用に開発した、Windows / macOS 両対応のアプリです。
元々 EOS Kiss X7 から2025年の夏に α6700 に乗り換えたのですが『ソニーの Playmemories Home の開発が終了しており α6700 など最新機種には対応しておらず、しかもそれ以降ソニーは PC 向けの写真・動画取り込み用アプリを開発していない』という課題に直面し、既存アプリも機能が多過ぎたり自分のユースケースに合わなかったため自作した次第です。

LLM コーディングではありますが何十にもレビューを重ね、設計段階からフェイルセーフ性にこだわるなど、非常に堅牢に作り込んだつもりです。動作安定性には自信があります。
少なくとも α6700 では半年以上全く問題なく動作していますし、撮ってきた大切な写真・動画を確実に保存する際にもはや欠かせないツールとなっています。
以前 Reddit に投稿した際には、海外の方からそれなりにご好評をいただきました。

GitHub – tsukumijima/Alpha-Import-Utility: Free & open-source photo/video import utility for Sony α cameras — a modern alternative to PlayMemories Home’s import feature. Windows & macOS.
Free & open-source photo/video import utility for Sony α cameras — a modern alternative to PlayMemories Home's import fe…

以下の記事の内容は、概ね ImageSquoosher の GitHub の README に書いた内容を、ブログ向けに一部加筆修正したものです。

せっかくかなり便利なツールを作ったつもりなのですが、ただ GitHub に公開しただけだと広がりに欠けるので、検索結果などから「画像をアスペクト比変更含めてパパッと一括変更したい」みたいなニーズを抱えている方に広く届けばいいなあと思い、執筆しました。

Sponsored Link

About

エクスプローラーや Finder で写真や画像を1つ or 複数枚選択したあと右クリックメニューから開いて、スパッと一括でサイズ圧縮・アスペクト比変更(トリミング)・リサイズをバッチ処理できる、軽量なデスクトップユーティリティーです。

Squoosh でも採用されている高画質高圧縮な JPEG エンコーダー「MozJPEG」と、明瞭さを保ったままリサイズできる「Lanczos3」アルゴリズムを搭載し、画質や明瞭感を保ったまま、ファイルサイズを極限まで削ぎ落とした JPEG に変換できます。
Windows 11 と macOS の両方に対応しています。

このアプリは、「Web やドキュメントへの画像掲載、Discord や Notion へのアップロード、生成 AI のリファレンス素材…などなど日々取り扱う画像ファイルを、エクスプローラーや Finder の右クリックから最短の手数で扱いやすい形に整える」目的で作られました。

こうした需要が発生するたびにブラウザでオンライン圧縮ツールを開いて1枚ずつアップロードして変換したり、Windows 11 で[その他のオプションを表示]を押して昔ながらのツールを探したりする手間はもう必要ありません。

Background

Web サイトやブログ記事、技術ドキュメントに画像を掲載するとき、あるいは Notion や Discord に画像やスクショをアップロードするとき、ファイルサイズや解像度の問題に突き当たることがよくあります。

  • Web サービスにアカウント登録後などでアイコンを設定する際、サービス側にアイコンリサイズ機能がなく自前で 1:1 かつ数百 px 以下にリサイズしないといけない不親切なサイトに遭遇したりする
  • Notion の無料プランには、 1ファイル 5MB までの制限がある
  • Discord の画像アップロードも、無料版ではアップロードサイズに制限がある
  • 動画生成 AI にリファレンス参照として一眼で撮った高解像度の写真・PC のスクショなどを投げたいが、ファイルサイズが巨大すぎて生成サービスや API から弾かれてしまう
  • Web 制作やリファレンス素材用などで、バラバラの解像度やアスペクト比になっている画像の解像度・縦横比を一括で統一したい

デジタル一眼カメラで撮影した写真はもちろん、最近の高画素なスマートフォンで撮影した写真や PC の高解像度スクリーンショットは、平気で数 MB から十数 MB を超えてきます。
これらをちょっとリサイズしてファイルサイズを落としたい場面は(そんな頻繁でなくても)稀によくありがちです。

画像を軽量化する手段として、Google が開発した Web アプリの Squoosh は一部で有名です、圧縮品質も秀逸です。既に開発は終了しているようですが…。
私自身も長年たまに重宝していましたが、日常的に作業していると、「ブラウザを開いて、画像を1枚ずつドラッグ&ドロップし、パラメータを確認してダウンロードする」という往復作業が、何枚も重なると大変なストレスになってきました。

Windows では Microsoft 公式の PowerToys に含まれる「Image Resizer」を使えば、右クリックからリサイズ自体は手軽に行えます。
しかし、次のような壁がありました。

  1. macOS にはそのような右クリックから一括バッチ処理できる手軽なツールが見当たらない
    探してみても、エクスプローラーや Finder のコンテキストメニューからスパッと起動して一括でよしなに縮小してくれるツールが macOS 側にはありませんでした。
  2. Windows でも、せっかくリサイズするなら MozJPEG で極限まで綺麗に小さくしたい
    PowerToys の Image Resizer など多くのツールは標準のエンコーダーを使っており、MozJPEG のような高度な圧縮方式を使えません。
    同じ解像度を維持する場合でも、MozJPEG でならもっとファイルサイズを削ぎ落とせるはずです。
  3. 日常的に macOS と Windows の両方を使い分けている
    私は普段のメインマシンとして macOS を愛用していますが、一眼カメラで撮影した写真の取り込みは Windows マシンで行っており、動画編集なども Windows だったりと、日頃から両 OS を頻繁に行き来しています。
    だからこそ、どちらの OS を使っていても全く同じ感覚で右クリックからスパッと使えるツールが欲しかったのです。
  4. バラバラのアスペクト比を、黒帯なしでサクッと真ん中起点で揃えたい
    動画サムネイル (16:9)、記事の OGP (1.91:1)、SNS アイコン (1:1)、デスクトップ背景など、用途に合わせて「とりあえず真ん中基準で上下や左右を切り落としてアスペクト比を揃えたい」場面がよくあります。
    これを別の画像編集ソフトを開いて1枚ずつトリミングするのは面倒すぎます。

「ファイルを選んで右クリックしたら、いつものエクスプローラーや Finder から一瞬で起動して、モダンな UI で確認し、ボタン1つで最高品質の軽量 JPEG に仕上がるツールが欲しい。」
そう思い立って個人で開発したのが、この ImageSquoosher です。

以前、ソニー α カメラから未取り込みの写真・動画だけを全自動で確実に取り込むために個人開発した「α Import Utility」(今年1月に懐かしの Opus 4.5 あたりでバイブコーディングして制作した) で得た手応えと知見を踏まえ、今回も Flutter Desktop を採用しました。
Windows と macOS でコアロジック (Dart) と UI デザインを共通化し、どちらの環境でも全く同じ操作感を実現しています。

なお、Windows の Explorer 統合(packaged COM と loose package 登録)や macOS の Finder 統合(Finder Sync Extension)といった OS 固有の難解なネイティブ連携コードは、最近リリースされた GPT-6 Astra に全任せで書いてもらいました。
細かい実装の詳細は深く追っていませんが、最初から何の問題もなく普通に動いているのでたぶん大丈夫なはず・・・!
実装を Astra くんに丸投げした一方で、UI デザインや使い勝手に関してはシンプルながらかなり細部まで作り込み、日々の作業で「かゆいところに手が届く」ように仕上げたつもりです。

Motivation

ImageSquoosher は、日常的に画像を扱うクリエイターやエンジニア、ブロガーの作業フローを徹底的に短縮することを目指して設計されています。

やりたかったこと

  • エクスプローラーや Finder から右クリック一発で開けること
    • 画像を複数選択して右クリックするだけで、即座に ImageSquoosher が立ち上がり、選択した画像がキューに並びます。
    • Windows 11 では[その他のオプションを表示]の中ではなく、最初の右クリックメニューに直接表示されます。
    • macOS でも Finder Sync 拡張により、Finder のコンテキストメニューから直接開けます。
  • MozJPEG による圧倒的な圧縮率と画質の両立
    • Google が以前開発した Squoosh でも使われている MozJPEG をアプリ本体に同梱。別途ビルドしたりインストールする必要はありません。
    • 世の中に使いやすい MozJPEG の GUI フロントエンドが Squoosh 以外にほとんど存在しなかったため、その決定版となるような使い心地を目指しました。
    • 一般的な JPEG エンコーダーと比べて、同じ視覚品質を保ちながら、ファイルサイズを品質次第では最大半分近くまで削減できます。
  • シンプルにするため、敢えて「取り回しの良い JPEG」に特化
    • WebP や AVIF も圧縮率の観点では優れたフォーマットですが、画像編集ソフトや各種ビューアー、Web サービスによっては対応していないことも多いです。
    • なんだかんだ JPEG の方がどこへ持っていっても確実に表示でき、最も取り回しが良いのが実情です。そうした JPEG ファイルを、なるべく画質を維持した上で小さくできるツールを目指しました。
    • 少なくとも私の用途では WebP / AVIF はほとんど使わないため、実装と機能をシンプルにするために、敢えて出力形式を MozJPEG (JPEG) に固定しています。
  • バラバラな解像度・アスペクト比を黒帯なしで一括統一
    • 横長・縦長・正方形などバラバラな画像群を追加した上で、16:9 や 1:1、OGP 向けの 1.91:1 などの指定した縦横比へ、クロップ&リサイズを行い同じ解像度の画像へ一括統一できます。
    • リサイズ処理には、ディテールを保ったまま滑らかでシャープにリサイズできる Lanczos3 フィルタを採用しています。
      • [小さい画像を拡大する] にチェックを入れると、横幅が指定 px に満たない画像は引き伸ばし、指定 px より大きい画像は適切にリサイズし、指定したファイル群の縦横解像度・縦横比を一括で揃えることができます。たまに地味に便利なはず…!
    • アスペクト比の変更処理ではいわゆる「Fit」になるよう、中央起点で指定アスペクト比に合うように上下または左右を切り落とします。
  • 地味に助かる EXIF(位置情報・カメラ情報)の削除機能
    • 大手 SNS では投稿時に自動で EXIF が削除されるケースが多いですが、ブログに貼ったり、Web サイトの素材や共有フォルダに配置したりする際、撮影場所の GPS 位置情報や機材情報などが残っていると諸々困る場合があります。
    • こうしたニーズに対応し、リサイズや圧縮のついでにサクッと EXIF を落とせるようにしました。
  • 地味に助かる「作成日時・更新日時などのファイルシステム上の時刻メタデータを元画像から引き継ぐ」挙動
    • 割とあるあるだと思うのですが、 元画像をリサイズ後にエクスプローラーや Finder でファイル名順・更新日時順どちらでソートした場合でも、リサイズ済みの画像とそうでない画像が隣り合って表示されていて欲しいじゃないですか!(取り回し的に、特に整理できてないフォルダの場合…)
      • Squoosh など Web 上のリサイズツールを使うとダウンロードフォルダから移動させる手間が発生しますし、ファイルの作成日時・更新日時は現在日時になってしまい「かゆいところに手が届かない」問題が発生します。
      • ImageSquoosher では、元画像の作成日時・更新日時をリサイズ後の新しいファイルにも引き継ぐことで、これを達成します。
  • 大切な元画像が誤って上書きされることを防ぐフェイルセーフ設計
    • 「うっかりオリジナルを上書きしてしまった」という事故は絶対に避けたいものです。 元画像の上書き機能は起動ごとに必ずオフにリセットされ、明示的にチェックを入れない限りは常に別名で安全に保存されます。
    • 上書きする場合でも、別の一時ファイルへの出力、MozJPEG の正常終了検証、JPEG 画像としての妥当性検査、作成日時と更新日時の引き継ぎがすべて成功して初めて、アトミックに置き換えるよう設計されています。
  • Flutter Desktop を採用し、Windows と macOS 両方で同じ操作体験を実現しながら、サクサク動く高速性との両立を達成
    • 最近は PC でのネイティブ開発がダルいからと Electron で富豪プログラミングしたり、せいぜい Tauri (言うてブラウザ WebView を使うのでそれなりにメモリを使う) ですが、やはり UI がブラウザなので、インストールサイズを含め重量感は否めません。
    • その点で、Flutter Desktop は(複数の画面遷移のある高度なアプリを作りたいならともかく)単一ウインドウで収まるツールを作る分には、「クロスプラットフォーム対応」「Material Design 標準搭載なので UI コントロールのデザインが美麗で、デザイン自由度も高く、両 OS で見た目を統一できる」「Electron や WebView ベースより圧倒的に起動が速く、インストールサイズも数十 MB 程度に収められる」といった多数のメリットがあります。
      • デメリットは Dart という Flutter でしか使われてない JS もどきを書く必要がある点ですが、どのみち LLM に丸投げして作るんだし、少なくとも令和の時代に Qt とか GTK とか Xamarin を使うよりはリンター完備の LLM に優しいモダンな言語設計で高品質に作りやすく、断然良いんじゃないか?というのが持論・・・。

「構図の微調整が不要で、サクッと一括でアスペクト比を変更して中央トリミングしたい用途」に特化

写真のトリミングやアスペクト比を変更する際、細かく切り抜き位置や切り抜きサイズを変更したいなら、標準の編集ソフトなりフォトショなりを使うべきです。
ImageSquoosher の主用途はそこではありません。

  • デスクトップ背景にしたい
  • YouTube など動画のサムネイルにするために 16:9 にしたい
  • アカウント登録した Web サービスアイコン用にお気に入りの画像を 1:1 に切り出したい
  • 記事の OGP 画像用に 1.91:1 にしたい
  • 動画生成 AI / API のリファレンス画像として投げるために画像サイズを揃えたい (MiniMax H3 Max など、API によってはリファレンス画像の解像度の高さで課金額が変わるケースがある)

…といった、「とりあえず真ん中起点でいいから、サクッと一括バッチ処理でアスペクト比と解像度を統一したい」という地味だがたまにあるリアルな需要を、最短の手数で解決するためのツールです。

安心のフェイルセーフ設計

ImageSquoosher は、「安全側に倒し、脳死で使っていても事故らない」「サクッと迷わず操作・変換できる」ことを最優先に設計しています。

  • 元画像は原則として保持する:既定では _resized のサフィックスを付けた別名で保存し、元画像の元本を誤ってリサイズ後のデータで上書きしてしまう悲しい事故を根本から防ぎます。
  • 同名ファイルは暗黙に上書きしない:出力先に同じ名前のファイルが既に存在する場合は、DSC01234_resized (1).jpgDSC01234_resized (2).jpg のように Finder やエクスプローラーと同じ形式の連番を自動で付与します。
  • 上書きは厳格な検証を通過した時だけ行う:[元のファイルを上書きする]を明示的に有効にした場合でも、すべての処理が完了し正常に変換できたことをすべて確認できるまでは、元画像には一切手を加えません。
  • 起動時に危険な設定を残さない:[元のファイルを上書きする]のチェックは、アプリを起動するたびに必ずオフへ戻ります。

Features

エクスプローラーや Finder の右クリックから一瞬で開ける

Windows 11 のエクスプローラーでも、macOS の Finder でも、画像ファイルを選択して右クリックするだけで即座に起動し、選択した画像が変換キューに入ります。

Windows 11 では、[その他のオプションを表示]を開くことなく最初の右クリックメニューのトップレベルに直接[ImageSquoosher]が表示されます。
macOS でも、Finder で画像を選択したときのコンテキストメニュー内に [ImageSquoosher で圧縮・リサイズ] と表示されます。

複数ファイルを選択した状態で右クリックメニューから起動すれば、選択したすべての画像が一括でキューに追加されます!
もちろん、起動中のウィンドウへ画像ファイルをドラッグ&ドロップすることでも追加できます

MozJPEG 搭載による高圧縮と高画質

MozJPEG によるファイルサイズ削減結果

JPEG 出力には、実績ある MozJPEG (v4.1.1) の cjpeg を直接使用しています。

トレリス量子化をはじめとする MozJPEG 独自の最適化処理により、見た目の劣化を感じさせないまま、通常の JPEG 出力よりも大幅にファイルサイズを小さく抑えられます。
品質スライダー(既定値:90)で、用途に応じたバランスを直感的に指定できます。

バラバラな画像を黒帯なしで一括統一・Lanczos3 リサイズ

変換設定パネル(縦横比、品質、リサイズ、サフィックス)

解像度やアスペクト比がバラバラな画像群も、黒帯(レターボックス)を付けることなく、中央を基準に上下または左右を切り落として一括統一できます。
縮小アルゴリズムには、縮小後も文字や細部がボケにくい高品質な Lanczos3 (3次ランチョスフィルタ) を採用。
スクリーンショットに含まれる細かな文字の可読性も保たれます。

元画像の縦横比を保つ「元のアスペクト比を保つ(デフォルト)」のほか、16:9 (動画サムネイルやブログなど)、1.91:1 (OGP 画像)、1:1 (正方形アイコン)、4:3、3:2 など、主要な比率をプリセットで備えています。

入力画像の解像度以上に引き伸ばすのを防ぐ安全ガードが標準で有効です。
オフにするには [小さい画像を拡大する] にチェックを入れてください。

細部まで「かゆいところに手が届く」モダンな UI

画像一覧と進捗表示

シンプルながら、日々の使い勝手を徹底的に考え抜いた UI を備えています。

  • トリミング後のサムネイルプレビュー:アスペクト比を変更すると、実際に中央で切り抜かれた後の比率に合わせてサムネイルがリアルタイムにクロップ表示されます。
  • 変換前後の情報がひと目でわかる:入出力ファイル名、変換前後の解像度、元サイズと圧縮後のファイルサイズ、削減率 (%) が一覧カード上にわかりやすく表示されます。
  • 誤って追加した画像の削除:変換対象に間違えて含めてしまった画像は、右端の[×]ボタンで個別に除外できます。もちろん[すべて外す]で一括クリアも可能です。
  • 出力先へのワンクリックアクセス:一覧の行をダブルクリックすれば元画像を既定のビューアーで確認でき、変換完了後は[出力ファイルを開く]や[Finder で表示](Windows では[フォルダを開く])から直接結果を確認できます。

ついでに機微な位置情報を消せる EXIF 削除機能

スマートフォンやデジタルカメラで撮影した写真には、撮影日時だけでなく、撮影場所の緯度経度(GPS 情報)やカメラの機種名などのメタデータが含まれていることがあります。

素材サイトへ投稿したり、Web サイトやブログに掲載したりする前に位置情報を消しておきたいとき、設定パネルの[メタデータを削除する]にチェックを入れておくだけで、リサイズ・圧縮と同時に EXIF 情報を綺麗に除去できます。

徹底したデータ安全性と日時の引き継ぎ

「誤操作で大切な元画像を消してしまった」という事故を防ぐため、[元のファイルを上書きする]設定はアプリを起動するたびに必ずオフへ戻ります。
また、上書きを有効にした場合でも、別の一時ファイルに出力して検証(MozJPEG の終了コード、JPEG シグネチャ、要求寸法)をパスした後にのみ、アトミックに置き換えることで、万が一変換に失敗した場合に壊れたファイルだけが残る自体を根本的に回避しています。

変換後のファイルには、元画像の作成日時と更新日時が正確に引き継がれます (macOS は URLResourceValues、Windows は Win32 API 経由)。
PNG や WebP の上書き時も、空いている JPEG 名を確保して生成と検証の成功後に元ファイルを削除するため、既存の同名 JPEG を壊す心配がありません。

完全ローカル処理とプライバシー保護

画像処理はすべてお使いの PC 内で完結します。
インターネットへの画像アップロードや外部通信は一切行われないため、機密情報を含むドキュメント画像や個人的な写真も、安心して高速に処理できます。

対応環境

OSアーキテクチャ備考
Windows 11x64右クリックメニューからの起動に対応
macOS 12 以降Apple Silicon (arm64)右クリックメニュー (Finder Sync 拡張) からの起動に対応

対応画像形式

入力形式出力形式処理内容
JPEG (.jpg, .jpeg)JPEG (.jpg)静止画のみ対応
PNG (.png)JPEG (.jpg)透過部分は白背景と自動合成
WebP (.webp)JPEG (.jpg)静止画のみ対応

APNG (アニメーション PNG) やアニメーション WebP はサポートしていません。
HEIC / HEIF はそのうちサポートするかもしれませんが、裏側で使っている画像デコードライブラリが HEIC / HEIF に対応していない関係で、現状棚上げしています…。

インストールとセットアップ

ダウンロード

  1. Releases ページ を開きます。
  2. お使いの OS に対応した ZIP ファイルをダウンロードします。
    • Windows: ImageSquoosher-vX.Y.Z-windows.zip
    • macOS: ImageSquoosher-vX.Y.Z-macos.zip
  3. ダウンロードした ZIP ファイルを展開します。

Windows での起動と右クリックメニュー登録

  1. 展開したフォルダを任意の場所へ配置します。
    アプリ本体と同じ場所にある mozjpeg フォルダや VC++ ランタイム DLL も動作に必要ですので、フォルダごと配置してください。
  2. ImageSquoosher.exe をダブルクリックして起動します。
  3. 右上のパズルボタン[Explorer の右クリックメニューに追加]をクリックします。
    Windows のユーザーアカウント制御 (UAC) 画面が表示されるので、承認します。
  4. これで登録完了です。エクスプローラーで画像を選択して右クリックすると、最初のメニューに直接[ImageSquoosher]が表示されます
  • ポータブル版のまま登録可能:ImageSquoosher はインストーラー不要のポータブルアプリですが、Windows 11 のモダン右クリックメニューに直接追加できます。
    • 内部で Loose Package Registration の仕組みを使っているらしいです。結構面倒そうなところ、詳細な実装は Astra くんに丸投げしたので何もわかりません!!!ちゃんと作ってくれて大感謝・・・
  • 配置場所を移動した場合:フォルダを別の場所へ移動した場合は、右上のボタンが[Explorer の右クリック連携を修復]に変わりますので、クリックして修復してください。
  • 連携を解除したい場合:右上のボタン[Explorer の右クリックメニューから削除]をクリックするだけで、いつでも右クリック項目を綺麗に削除できます。

macOS での起動と Finder 連携の有効化

  1. 展開して現れた ImageSquoosher.app を「アプリケーション」フォルダへ移動します。
  2. ImageSquoosher.app を起動します。
  3. 右上のパズルの形をした Finder 連携ボタンをクリックします。
    macOS の「システム設定」の機能拡張管理画面が開きます。
  4. 一覧から ImageSquoosher Finder Sync 拡張を有効(オン)にします。
  5. これで設定完了です。Finder で画像を選択して右クリックすると、コンテキストメニューに[ImageSquoosher で圧縮・リサイズ]が表示されます

基本的な使い方

  1. 画像を追加する
    エクスプローラーや Finder で画像を選んで右クリックメニューから開くか、起動中のウィンドウへ画像ファイルをドラッグ&ドロップします。ヘッダーの[画像を追加]ボタンからも選択できます。
  2. 変換設定を調整する
    左側の設定パネルで、必要に応じて変換パラメータを調整します。
    • 画質:JPEG の品質を 1から100 で指定します(既定値:90)。
    • 縦横比:中央クロップの比率を選択します。元画像の比率を保つ「Original」のほか、16:9、1.91:1 (OGP)、1:1 (正方形)、4:3、3:2 などから選べます。
    • リサイズ:幅または高さを基準に、指定したピクセル数へリサイズします。
    • メタデータ削除:位置情報 (GPS) やカメラ撮影情報 (EXIF) を出力から除外したい場合は有効にします。
    • サフィックス:出力ファイル名の末尾に付与する文字列を指定します(既定値:_resized)。
  3. 変換を開始する
    画面下の[変換開始]ボタンをクリックします。画像が順次変換され、進捗バーと削減率がリアルタイムに更新されます。
  4. 出力ファイルを確認する
    変換が完了したら、カード右下の[出力ファイルを開く]で直接ファイルを表示するか、[Finder で表示](Windows では[フォルダを開く])をクリックして保存先フォルダを開きます。

出力ファイル名の規則

  • 通常は {元のファイル名}{サフィックス}.jpg として出力されます。
    例:photo.pngphoto_resized.jpg
  • 出力先に同名のファイルが既に存在する場合は、上書きを避けるため連番を付与します。
    例:photo_resized (1).jpgphoto_resized (2).jpg
  • 元のファイル名の末尾に連番が含まれている場合は、サフィックスの後ろへ連番を引き継ぎます。
    例:photo (2).pngphoto_resized (2).jpg

元画像の上書きについて

[元のファイルを上書きする]を有効にすると、変換後の JPEG で元画像を置き換えます。

  • JPEG 画像の上書き:一時ファイルで MozJPEG 変換、JPEG の正当性、寸法の合致を確認した上で、アトミックに置き換えます。万が一変換途中で問題が発生した場合も元画像は保持されます。
  • PNG / WebP 画像の上書き:空いている JPEG ファイル名を確保して変換と検証を完了させ、作成日時と更新日時を引き継いだ後でのみ元画像を削除します。同名の既存 JPEG を誤って削除することはありません。

元画像の上書きは不可逆な操作です。必ず事前に変換結果を確認してからご利用ください。
既定の状態では上書きはオフになっており、アプリを再起動した際も必ずオフに戻ります。

技術的なこだわり

なぜ MozJPEG なのか

一般的な画像変換ツールでは、処理の軽さや実装の手軽さから標準の libjpeg や OS 提供のエンコーダーが使われることがほとんどです。
しかし、これらは視覚的な冗長性を削ぎ落とす最適化が不十分で、ファイルサイズを小さくしようと品質設定を下げると、すぐに目立つブロックノイズや色にじみが発生してしまいます。

MozJPEG は、Mozilla が開発したオープンソースの高度な JPEG エンコーダーです。
人間の視覚特性に合わせた量子化テーブルの自動調整や、トレリス量子化による徹底的なデータ削減を行うため、「見た目の美しさを保ったまま、ファイルサイズだけを劇的に落とす」 ことができます。
ImageSquoosher では、システムの固定パスに依存せず動作するよう、各プラットフォーム向けにビルドした MozJPEG 4.1.1 の cjpeg ネイティブバイナリを同梱し、変換コアから直接呼び出しています。

MozJPEG は結構前から Squoosh の裏側で使われてたのがきっかけで知っていたのですが、今調べたら Google が新たに Jpegli というエンコーダーを出していて基本そっちの方が圧縮率良さそうなので、そのうち乗り換えるかもしれない…。

なぜ Lanczos3 リサイズなのか

画像を縮小する際、単純な最近傍法 (Nearest Neighbor) やバイリニア補間 (Bilinear) を使用すると、文字の輪郭がぼやけたり、細い格子模様に激しいモアレ(干渉縞)が発生したりします。
ImageSquoosher では、高品質なサンプリングフィルタである Lanczos3 (3次ランチョスフィルタ) を採用しています。

GIMP のリサイズツールのアルゴリズム欄に載ってるアレです。Squoosh のリサイズ処理も概ね同じアルゴリズムが使われていたはず…(実装もそこから Astra くんに移植させた)。
スクリーンショットに含まれる細かな文字の可読性を保ち、高精細な写真でもくっきりとした解像感を維持したまま縮小できます。

Windows 11 の最新右クリックメニューへの直接登録

Windows 11 ではコンテキストメニューのデザインが一新され、従来のシェルの拡張機能は[その他のオプションを表示]の配下に押し込められてしまいました。
新しいトップレベルのメニューに項目を追加するには、通常 MSIX パッケージでの配布や自己署名証明書のインストールが要求されます。

ImageSquoosher は、インストーラー不要で手軽に使えるポータブル ZIP 配布の利便性を維持しながら、Windows 11 の最新メニューに直接表示させることにこだわりました。

同梱の登録ヘルパー(ImageSquoosherShellRegistration.exe)が、展開されたフォルダ内の AppxManifest.xml を Loose Package として現在のユーザー環境へ登録します。
登録時に必要な開発者モードの変更のみを UAC 付きヘルパーで一時的に行い、登録完了後は即座に変更前の状態へ復元します。
これにより、ポータブルアプリでありながら Windows 11 ネイティブの快適な操作感を実現しています。

私の開発 PC では常に開発者モードがオンなのであまり検証できておらず、もしかすると開発者モードがオンでないマシンではうまく動かないかもしれません。
その場合にも、開発者モードを Windows 11 の設定から手動でオンにしていただければ、問題なく右クリックメニューに登録できると思われます。

お問い合わせ

商用利用などに制限は特にありませんので、ぜひご自由にお使いください!

もし何か不具合を見つけられましたら、以下の GitHub Issue かコメントまでお知らせください!
(ブログコメントは確認頻度が低めなので、技術者の方は GitHub Issue からご報告いただけると大変助かります…。)

Issues · tsukumijima/ImageSquoosher
ImageSquoosher: MozJPEG で画像を複数一括で高画質に圧縮・リサイズできる Windows / macOS 向けツール – Issues · tsukumijima/ImageSquoosher

コメント