abox.tools

言語: 日本語

画像をファイルサイズ上限以下に圧縮する方法

100 KB、500 KB、2 MB。誰かに数字を告げられたものの、手元の写真はそこに遠く及びません。ここでは、その数字が何を犠牲にするのか、どこにその予算を使うべきか、そして結果がまだ送れる出来かどうかをどう見分けるかを説明します。

画像圧縮ツールを開く サイズを指定するだけ。あとは自動で探します。

Markdownで表示

短い答え

画像圧縮ツールを開いて写真を入れ、指定された数値を打ち込み、ボタンを押します。画像を何度もエンコードし、目標に収まる中でいちばん良い結果を残し、その代償を表示します。たいていの写真とたいていの目標については、正直に要約すると、違いは見分けられません。

このページの残りは、そうならなかった場合のためのものです。結果がぼやけて見えるとき、PNGがほとんど縮まないとき、そして誰かに送る前に、その道具が画像に実際何をしているのかを知っておきたいときです。

目標のカード。200 kBが入力され、よくある上限のボタン、形式のメニュー、そしてツールが何を試すかの説明が並んでいます。
渡された数字をそのまま入れてください。その下は全部、品質のつまみで当てずっぽうをする代わりに、ツールがその数字へ向かって働く部分です。

ファイルサイズの制限が本当に求めているもの

JPEGやWebPは、写真そのものを保存しているのではありません。写真の記述を保存していて、画質の設定は、その記述をどこまで詳しく書いてよいのかを決めます。下げるとファイルが小さくなるのは、記述が大雑把になるからです。細かい質感は平均され、グラデーションには段が出て、輪郭にはブロック状のかすかな縁が付きます。

つまりサイズの制限とは、細部に使える予算です。役に立つ問いは「500 KBにできるか」ではありません。どんな数値にも必ずできます。問うべきは「そこへ届くために画像のどれだけを差し出さねばならず、それは自分の用途にとって問題になるか」のほうです。

経験則が2つあります。顔、木の葉、布地といった実際の風景の写真は、圧縮をよく隠します。目が損傷に気づけるほど完全に平坦な領域がないからです。スクリーンショット、グラフ、ロゴ、そして広い平坦な色と硬い文字の輪郭を持つものは、それを即座に見せてしまうので、たいていはJPEGではなくPNGかWebPにすべきです。

計算式が存在しない理由と、その対処

500 KBのファイルになる画質設定を計算する方法はありません。両者の関係は、画像の中身に完全に依存します。同じ設定でも、のっぺりした壁の写真は森の写真の10分の1の大きさになるかもしれません。「画質:60」を差し出して祈るような道具は、使う人に代わって当て推量をしています。

唯一確実な方法は、試すことです。画像をエンコードし、サイズを見て、調整し、もう一度エンコードします。それを手でやるのは面倒で、だから圧縮ツールは代わりに画質の数値を尋ねます。面倒を使う側に移しているわけです。自動でやればだいたい8回のエンコードで済みますし、スマホの写真8回分は、この10年に作られたどの端末でも1秒に満たない時間です。このサイトの道具がサイズのほうを尋ね、探索を自分でやるのは、そのためです。

報告されるサイズはすべて、推定値ではなく実際に書き出されたファイルのものです。フォームに厳しい上限があるときには、これが効きます。2%楽観的な推定値とは、拒否されたアップロードのことだからです。

ピクセルより先に画質を使う

画像ファイルを小さくする方法は2つしかありません。同じ画像をより粗く記述するか、より少ないピクセルを記述するかです。前者が画質、後者がリサイズです。この2つは等価ではなく、順番が効きます。

画質が先です。画質を落とす最初の3割ほどは、写真では本当に見分けがつきません。どんな目にも確かめられないほど丁寧に保存されていた細部を、捨てているだけだからです。ピクセルは後です。画質が下がってノイズが見えるところまで来たら、まともな画質の小さな画像のほうが、原寸のまま台無しになった画像より良く見えます。荒れたピクセルが多いより、きれいなピクセルが少ないほうが勝つのです。

戦略はこれで全部ですし、別の道具を使う場合でも知っておく価値があります。おかしく見え始めるまで画質を下げ、そこからさらに下げるのではなく、画像そのものを小さくすることです。

意図してリサイズすべきとき

そもそもピクセルが要らなかった場合もあります。ウェブページの幅600ピクセルの段に表示される幅4000ピクセルの写真は、誰も見ない6倍の細部を抱えています。その画像の最終的な置き場所がわかっているなら、先にそこへリサイズしてしまえば、画質をまったく使わずにサイズの問題が消えることがよくあります。それには画像リサイズツールが向いていますし、大きさの選び方はそのガイドが扱っています。

形式を選ぶ

知っておく価値のある形式は3つで、ブラウザはその3つとも書き出せます。

ファイルを求めてきた相手からの制約がないなら、WebPのほうがJPEGより少ない見た目の損傷で目標に届きます。ファイルが古いものへ入るなら、あるいは試せないシステムへ入るなら、JPEGが安全な答えです。

PNGがあまり小さくならない理由

これがいちばんよくある驚きで、お使いの道具の不具合ではありません。PNGは可逆な形式です。正確なピクセルを保存しており、回すべき画質のつまみがありません。回せば、別の形式になってしまうからです。PNGの圧縮器にできるのは、同じピクセルをより賢く詰め直すことだけで、それはたいてい数パーセントの価値です。

ですから、どうしてもずっと小さくしたくて、しかもPNGのままでなければならないなら、残っているてこは大きさだけです。ピクセルを減らすか、色を減らすかです。PNGでなくなってよいなら、問題は中身が何かになります。

結果が十分かどうかを見分ける方法

サムネイルを見ても、何も証明できません。サムネイルの大きさなら、何でも問題なく見えます。もっと良い確認が2つあります。

原寸で、画面の中でいちばん平坦なところを見てください。空、肌、塗られた壁です。圧縮の損傷は、細部の多い領域に届くずっと前に、なめらかなグラデーションの中に、かすかなブロックや帯として最初に現れます。

道具が数値を出すなら、それを読んでください。ここの圧縮ツールは自分の結果を読み直して元の画像と比較し、SSIMを報告します。変わったピクセルを数えるのではなく、局所的な明るさ・コントラスト・構造を比べる数値で、人の目が気にする点にずっと近いものです。おおむね0.98を超えると、並べても2枚を見分けるのは難しくなります。0.95あたりを下回ったら、送る前に見てください。昔ながらのデシベル値であるPSNRも、そちらを好む方のために報告します。

どちらも手元の端末で計算し、その場で表示します。それこそが、これらを持つ意味です。「画質の劣化は最小限」を、主張から、確かめられる数値に変えます。

結果の行。元が1.4 MB、圧縮後が196 kB、そこに届いた品質、そして両者を見比べるリンク。
実際に出てきたものが、入れたものの隣に並びます。見比べるリンクは、その数字が目に見える何かを奪ったかどうかを知るための入口です。

ファイルを送る前に知っておく価値のある3つのこと

圧縮するとメタデータは消えます。エンコードし直すとは、画像をピクセルに戻し、そのピクセルをもう一度エンコードすることで、ピクセルで埋まったキャンバスはタグを持ちません。ですからGPSの座標も、カメラの機種も、撮影日時もその他も、新しいファイルには書き込まれません。たいていはそれが得です。タグだけ消して画像には触れたくなかったのなら、それは別の仕事です。EXIFビューアー・削除ツールが何も再圧縮せずに入れ物だけを書き直しますし、そこに何が入っているのかはそのガイドが説明しています。

同じファイルを二度圧縮しないでください。非可逆のエンコードは、そのたびに細部を永久に捨てます。すでに圧縮された画像をエンコードすると、さらに捨てます。しかも1回目で生じたノイズは律儀に保存され、その分の費用は本物の細部から出ていきます。必ず元に戻ってから、一度だけ圧縮してください。

元のファイルを取っておいてください。非可逆のエンコードから戻る道はありません。何を送るにせよ、始めたときのファイルはどこかに残しておきましょう。

これにアップロードは要りません

どのブラウザも何年も前から、JPEG・PNG・WebPのエンコーダーを備えています。キャンバスから画像を保存するのと、同じコードです。画像の圧縮は、サーバーが関わる技術的な理由がまったくない仕事のひとつであり、だからここの道具にはサーバーがありません。画像のデコードも、エンコードも、計測も手元の端末で行いますし、送り先になりうる当サイトのアドレスは、ページのContent-Security-Policyのどこにもありません。

ここでもよそでも、それを確かめるいちばん簡単な方法は、ページを読み込み、通信を切り、それでも何かを圧縮してみることです。動くなら、何もアップロードされていなかったということです。オンライン変換サイトにファイルをアップロードしても安全ですか?には、同じような確認方法がさらに3つ載っています。