← ブログへ戻る

ImgZilla 1.3 正式リリース:「その場で圧縮」ツールが、なぜこれほど時間がかかったのか

本日、ImgZilla 1.3 が Mac App Store に正式リリースされました。その中核機能は明確です:Mac 上の画像をその場で圧縮し、ファイル名・パス・形式はそのまま、元画像はデフォルトでゴミ箱に入り、いつでも復元できます。これらの操作はすべてあなた自身の Mac…

シェア

本日、ImgZilla 1.3 が Mac App Store に正式リリースされました。

その中核機能は明確です:Mac 上の画像をその場で圧縮します。ファイル名・パス・形式はすべてそのまま、元画像はデフォルトでゴミ箱に入り、いつでも復元できます。

これらの操作はすべてあなた自身の Mac 上で完結し、インターネット接続は不要です。画像がコンピュータから離れることはなく、サーバーにアップロードされることもありません。プライバシーとデータの安全性は最初から基本設計に組み込まれています。

この機能は一見シンプルですが、私たちは何度もテストし、作り直し、設計をやり直しました。この記事で記録したいのは、「どんな機能を作ったか」ではなく、実際の利用シーンで遭遇した具体的な問題と、最終的にどう変わったかです。


「その場で上書き」という4文字、手を抜けない

多くの画像圧縮ツールは結果を photo-min.jpg として別名保存します。安全ではありますが、面倒をユーザーに押し付けます。ファイル名が変わると、商品リスト内の参照、Webテンプレートのパス、アーカイブディレクトリの並び順まで、すべて変更しなければなりません。

ImgZilla は別の道を選びました。圧縮結果を元のパス、元のファイル名、元の形式に直接書き戻します。 JPG は圧縮後も JPG のまま、参照を1行も変更する必要はありません。

その代償として、このツールはユーザーの元ファイルに触れます。 どこかで一歩間違えれば、失われるのはキャッシュではなく、誰かが一日かけて撮った写真や、何年もかけて集めたコレクションです。

だからこそ、製品が本当に時間をかけたのは圧縮そのものではなく(圧縮は成熟したエンコーダーに任せれば十分です)、「万が一」に備えるための防御策の数々です。以下の改善はすべて、テスト中に実際に遭遇したものです。


テストで変更したこと

1. 元画像保護の方針、最初から作り直した

当初の設計では、元画像を専用のバックアップディレクトリにコピーしていました。ロジックは正しいのですが、使い勝手が悪く、バックアップディレクトリが知らないうちに大きくなり、ユーザーは何か月も圧縮を続けて初めて、ディスクに完全なコピーが増えていることに気づきます。本来やりたかったことは、まさに省スペースでした。

現在の方法はゴミ箱優先です。圧縮が成功すると、元画像はまずシステムのゴミ箱に移動され、その後に圧縮結果が元のパスに書き戻されます。

復元方法は、Mac ユーザーなら誰でも知っている操作になりました。ゴミ箱を開き、右クリックして「元に戻す」。新しい概念を学ぶ必要も、どんどん大きくなる隠しディレクトリもありません。このスイッチは設定でデフォルトでオンになっています。オフにすると直接上書きされ復元できなくなるため、オフにする際には確認ダイアログが表示されます。

2. 外付けHDDのポップアップ、テストがきっかけ

外付けHDD、NAS、ネットワークボリュームでテストしたとき、macOS でよくある問題に直面しました。これらの場所ではファイルをゴミ箱に移動できないことが多いのです。

最初のバージョンの処理は、単にエラーを出してスキップするというものでした。結果として、ユーザーがフォルダ全体をドラッグ&ドロップしても、何も起こりません。

現在の処理は、圧縮を一時停止し、ポップアップで選択を求めるというものです。

  • バックアップディレクトリを選択:元画像をそこにコピーしてから、元画像を上書きします。
  • バックアップを放棄:確認後、直接上書きし、コピーを残しません。
  • ポップアップを閉じる:キャンセルとみなし、タスク全体を中止します。

テスト中に追加したもう一つの細かい点があります。選択内容は今回の残りすべてのファイルに適用されます。 そうしないと、500枚の画像で連続500回ポップアップが表示されます。最初のバージョンがまさにそうで、自分で一度使って耐えられませんでした。

選択したバックアップディレクトリはデフォルトのバックアップ場所として記録されます(~/Library/Application Support/ImgZilla Backups/ の下に時刻ベースのサブディレクトリが作成されます)。以後、同様の状況ではそれが優先的に使用されます。

3. 「最小化済み」:何もしないほうがまし

ドラッグ&ドロップする前にすでに圧縮されている画像もあります(他のツールでも、以前に ImgZilla で処理したものでも)。再圧縮しても、サイズ変化は通常わずか0.数パーセントです。そこで私たちは厳格なルールを定めました。圧縮率が0.4%未満の場合は手を付けず、 リストに「最小化済み」と表示し、元ファイルをそのまま保持し、無料枠も消費しません。

このルールによって統計は見栄えが悪くなります。すでに圧縮されたアルバム全体をドラッグすると、大半が「最小化済み」と表示されるかもしれません。しかし私たちは考えます。成果を見せるためにあなたの画像をもう一度圧縮するツールは、あなたの元ファイルに使う価値がない、と。

4. 拡張子が騙すとき

テストサンプルには、拡張子が .png なのに実際は JPEG というファイルがかなりありました。さまざまな経路で出回った画像は、想像以上に多いものです。

現在、ImgZilla はファイルヘッダーのマジックバイトを読み取って実際の形式を判定し、実際の形式に合わせてエンコーダーを選択します。拡張子が間違っていても正しく処理できます。

5. 並列ではなく直列処理

1枚ずつ順番に圧縮するのは、一見「遅そう」に見えます。並列処理を試したところ、速度は確かに上がりましたが、大量タスクでエラーが起きたときの状態把握が難しくなりました。しかもこのツールはユーザーの元ファイルを上書きしているのです。

ピーク速度よりも安定性を優先し、 最終的に直列処理を維持しました。なお、直列とはタスクを1枚ずつ処理するという意味であり、各画像の圧縮プロセス自体はエンコーダー内部でマルチスレッドを利用して行われるため、CPU のマルチコア能力を無駄にすることはありません。インターフェース上の補償として、現在処理中の項目を可視領域まで自動スクロールし、マウスホバー中は自動スクロールを一時停止し、下部に処理済み枚数と節約サイズをリアルタイム表示し、すべて完了したらシステム通知を送るようにしました。

6. 無料枠が尽きたら「中止」ではなく「一時停止」

無料版は1日10枚まで圧縮でき、日付が変わると自動リセットされます。テストでわかったのは、どのタイミングで中断されるかで体験が大きく変わるということです。200枚の画像をドラッグして、10枚目で直接失敗して終了すると、ユーザーは全ファイルを再追加しなければなりません。そのプロンプトは純粋な迷惑です。

現在の動作は、無料枠が尽きるとタスクはその場で一時停止し、購入パネルが表示されます。購入が完了すると、中断したところから残りを圧縮し、ファイルを再追加する必要はありません。また、無料枠は圧縮が成功したときのみ消費されます。圧縮失敗や「最小化済み」はカウントされません。

7. 19種類の言語オプションと、さりげない仕上げ

インターフェースは19種類の言語オプションを完全サポートしています(「システムに従う」、簡体字/繁体字中国語、English、日本語、한국어、主要欧州言語、العربية、Tiếng Việt など)。設定からいつでも切り替えられ、切り替えは即座に反映され、再起動は不要です。

この作業量は予想をはるかに超え、公開が後ろ倒しになった理由の一つでもあります。しかし、世界中の App Store で公開するツールとして、ユーザーに母国語で表示することは最低限の敬意です。


画質について:私たちの言葉を信じず、自分の目で確かめてください

圧縮で最も難しいのは信頼を築くことです。だからこそ、はっきり言います。

  • PNG(oxipng)と SVG(svgcleaner)は真のロスレス圧縮で、ピクセルは変わりません。
  • JPEG、WebP、AVIF、HEIC/HEIF、GIF は原理的に非可逆再エンコードですが、パラメータは視覚的ロスレスの範囲に設定されています。肉眼ではほとんど区別できませんが、これは「ロスレス」ではありません。私たちはこの2つの言葉を混同しません。

さらに、この言葉を信頼して受け入れる必要はありません。 ImgZilla には画像比較ウィンドウ(⌘D)が内蔵されています。左が圧縮前、右が圧縮後で、中央の分割線をドラッグして左右を見比べ、実際のサイズに拡大して細部を確認できます。リストにある圧縮成功した画像は、ワンクリックで比較を呼び出せます。

納得できなければ、ゴミ箱から元画像を元の場所に戻してください。 この退路は常にあります。

パラメータは固定されており、UIには品質スライダーはありません。これは明確なトレードオフです。パラメータ調整には量子化テーブル、エンコード method、speed などの専門知識が必要で、間違えると圧縮しても効果がないか、ぼやけてしまいます。私たちはそれを代わりに済ませました。各形式のパラメータは個別に調整済みで、ドラッグして圧縮をクリックすれば、その形式の現在のパラメータで最も理想的なバランスが得られます。

普段から自分で圧縮パラメータを調整している方にも、まず ImgZilla を試してみることをお勧めします。パラメータは調整済みなので、試行錯誤の手間を省けるかもしれません。


しないこと

同様に重要な境界をここに書いておきます。ダウンロードしてから気づくことがないように。

  • macOS のみ(12.3 以降)。Windows 版、iOS 版、Web 版はありません。
  • 形式変換はしません。 JPG は圧縮後も JPG のまま、WebP にはなりません。
  • サイズ変更はしません。 解像度も縮小せず、切り抜きもしません。
  • 必ず小さくなる保証はありません。 すでに最適化済みの画像は、1枚も圧縮できない可能性が高く、「最小化済み」と正直に表示されます。
  • EXIF はデフォルトで削除されます(GPS 位置情報を含むため、ファイルが小さくなりプライバシーも保護されます)。撮影パラメータ、著作権、カラープロファイルを保持する必要がある場合は、設定で手動で「EXIF 情報を保持」をオンにしてください。

もう一つ、特に強調すべきことがあります。すべての圧縮はあなたの Mac ローカルで完了します。 App Store の購入検証を除き、ImgZilla はネットワーク接続を必要とせず、画像がコンピュータから離れることはありません。待ち行列も枚数制限も、「他人のサーバーにアップロードする」ということもありません。エンコーダーはすべてアプリ内にパッケージされたローカル静的ライブラリです。


今すぐ使い始められます

  • 無料版:1日10枚、日付が変わると自動リセット、機能制限なし。
  • 制限解除:永久版(一度の購入で枚数無制限)または月額サブスクリプション。価格はお住まいの App Store 地域に応じて表示されます。パソコンを買い替えたり再インストールした場合は、「購入を復元」をクリックするだけです。

初回のおすすめの使い方:まず、あまり気にしない画像を1枚ドラッグし、圧縮後に「比較」をクリックして画質を自分の目で確認してから、フォルダ全体を渡すかどうかを決めてください。

これこそ、私たちがこのツールに望む使われ方です。まず検証し、それから信頼する。

ご質問やご提案があれば、メニュー「ヘルプ → フィードバック」からお知らせください。1.3 は安心してお使いいただけるバージョンですが、明らかに最後のバージョンではありません。


ImgZilla 1.3 は Mac App Store で公開中です。macOS 12.3 以降が必要です。

画像をもっと軽く、速く

ImgZilla をダウンロード。すべて端末内で圧縮し、画像はクラウドに送信されません。