現代のインターネット接続の平均速度は過去のウェブマスターにとって非常に未来的に聞こえます。 Webの初期の頃には、転送されたデータの量は時間と費用の両方で重要であり、したがってオンラインで何かをホストすることに関わっているすべての人は画像を小さくすることを試みました。
皮肉なことに、問題は今日は消えていません。スクリプト - 重いWebサイト(主流の世界ニュースなど)にアクセスするたびに、それはしばしばダースのメガバイト、イメージ、ビデオ、そしてなんとしています。それはまだ痛みを遅くするかもしれず、一部のモバイルデータユーザーにとってかわいいペニーにかなり費やすかもしれません(あなたがまともなものを使うならばこれは問題にならないはずです ウェブサイトビルダー 、 そして、良いです ウェブホスティング あなたのために目を向けてください)。
このチュートリアルでは、Web用のビットマップファイルを削除できる方法を見つけます。古き良きPNGとJPEG形式を利用する限り(詳細を参照 画像ファイルのフォーマット ここで、必ずファイルを右に保存してください クラウドストレージ 同様に)、いくつかの暑さを使って、品質を犠牲にすることなく私たちがより小さくすることができる方法を見るでしょう オープンソースプロジェクト 。最後に、まだ良く見えるが、ユーザーのWebブラウザでレンダリングされる時間が少なく、データが少なくて済むように、実質的に小さいファイルがあります。
詳細に飛び込んで読んでください。まず、ソフトウェアに関する素早い注意事項。ここに記載されているすべてのツールはオープンソースです - ガイドの底にジャンプ ソフトウェアを取得する方法 必要です。
それはまだファイルサイズについてまだ耐難いように忠実に聞こえるかもしれませんが、目的なしには大きすぎるか、または小さいにもかかわらず大きさに見えるのに十分な例があります。そのような間違いを回避するには、画像を保存または変換するフォーマットを賢く選択します。 JPEGを使用すると、画像が8×8ピクセルのタイルに分割され、各タイルは圧縮されます。圧縮のレベルはユーザーによって異なります(画像を保存するとスライダ)が通常、JPEGでは10:1のファイルサイズのゲインを使用して、品質の許容損失を得ることができます。
高さ(80-100)および低(40-60)の圧縮率で行われたJPEGファイル間の知覚的差は、写真画像のための最小限であるが、デジタルアートワーク、アイコン、スクリーンショットなどのものにとって非常に顕著である。したがって、写真のためのJPEGを選択して他の種類のビットマップイメージのために他のものと一緒に行くことをお勧めします。
PNGは、ネットワークグラフィックスのための最も適切なフォーマットの1つです(実際には、それがその略語の意味)。 JPEGフォーマットは常に損失があるが(品質が100に設定されていても)、PNG形式は損失があるかどうかになります。また、その場合でも、画像に使用される色数を減らすことでデータを圧縮することで、一般的に鮮明に見えて明確になる。そのため、ScreenGrabsやSolid Fillを持つ他の種類の写真を描いたPNGを選択してください。
Bunchのフリーウェアツールでビットマップファイルを最適化することは可能であるため、本格的なイメージエディタに頼る必要はありません。想像されてみてそのようなアプリケーションの1つがあり、それは非常に使いやすいです。想像ウィンドウの上に画像(または画像のスタック)をドラッグし、小さなスライダを使用して圧縮率を調整します。
JPEG、PNGファイル、およびWebPファイルで動作すると想像して、損失のある符号化に最適です。最大の利点は、ツールがインタラクティブなことです。現在の設定で画像がどのように見ているかを即座に表示し、提案されているファイルサイズを表示します。想像されてるのはバッチ処理に最適に動作します - 少なくとも必要な場合は開いたすべての画像を一度に保存することができます。
言うまでもなく、何百もの場合は何百台ものJPEGおよびPNGオプティマイザーがあります。 TINYJPG )。しかし、まだ急いで急いではいけません - 私たちは私たちの袖を良くしました。
一目で、損失の多いJPEGファイルのサイズからはるかに多くの噛み付きができないようです。ZIPやその他の圧縮手法を使用して画像をさらにアーカイブさせるための無駄な試みによって即座に証明できるもの。しかし、ここではJPEGのためのスマートスイスのクッキーと洗練された知覚的エンコーダーです。
Guetzliは、その圧縮密度を高めることによって平均JPEGを20~30パーセント小さくします。この秘密は、アルゴリズムが人間が彼らが見るものを知覚する方法を知っているので、結果として得られる画像は依然として目に素晴らしく見えます。 GUETZLIは、次の構文を使用するクロスプラットフォームのコマンドラインツールです。
guetzli [--quality Q] [--verbose] original_image output_jpeg_image
元の画像はPNGまたはJPEGのいずれかで、出力は常にJPEGです。したがって、最先端の圧縮のおかげで、Guetzliを使用してPNGをJPEGに変換できます。品質は0~100の間に落ちるべきです。 Guetzliは信じられないほどリソース - 重いソフトウェアです。 1メガピクセルあたり300MBのメモリ、さらに多くのCPU電力を消費します。あなたの超最適化されたJPEGが地球温暖化を後押ししないことを願っています...
ポータブルネットワークグラフィックは、無損失画像符号化用に設計されている限り、異なる話です。 GIMPのようなイメージエディタで画像をPNGとして保存すると、0から9までの値がある圧縮比スライダがあります。ここでは0は圧縮がないことを意味し、それがTIFFとして保存されているかのように画像を重量にします。対照的に、9は不要な色情報の大部分をほとんど取り除き、TIFFより15~20倍小さいファイルになります。
今回は、すでに小さいPNGファイル(9の比率で)さらに小さくしようとします。この目的のために、zopfli、もう一度Google Labsにルーツを持っている別のオープンソースツールを使用します。 Zopfliは、デフレ、GZIP、およびZLIBデータ符号化のための高品質のコンプレッサーです。
興味深い部分は、zopfliに1つのバンドル内の2つのエンコーダが含まれているためです。汎用のバイナリと専用の 'zopflipng'ツール。後者はまさに私たちが必要とするものです! zopflipngは、WebP形式からバックポートされた特定のアルゴリズムを持つデフレートベースのエンコーダです。スキャンラインコードを使用して最適な戦略を自動的に選択し、PNG内のさまざまな不要なチャンクを削除するのに十分です。この簡単な構文でそれを使用してください:
zopflipng original_png output_png
zopflipngは、次の明示的なオプションを使用して、おそらくジョブをさらに良くすることができます。
zopflipng-iterations = 500 - filters = 01234mepb --lossy_8bit --lossy_transparent ofolignal_png
OUTPUT_PNG
あなたが支払う価格はGuetzliと同じです:ツールは特に大きい場合は画像を処理するために多くの時間がかかります。あなたが使用するより多くの反復は、それがかかるが500が妥当な数字であることを長くします。 Zopfliを使ったファイルサイズの利得は8から20パーセントの間にあり、それは視覚的に完璧な画像に非常に良いです。簡単に言えば、8パーセントを得ることはスクリーンショットにとって一般的ですが、20パーセントが写真で可能です(あなたがPNGとして保存する必要があるとき)。
正式には、この部分はPNGとJPEGの範囲を超えていますが、ファイル変換をオンザフライで整理することができるので、非常に実用的です。ここで私たちが意味するのは、最良の業界標準(WebPを読む)を凌駕する代替と新しい画像フォーマットを使用しています。
1つはFLIF、PNG、FFV1、可逆ウェブ、ロスレスBPG、および圧縮率の観点から、PNG、FFV1、可逆的WEBP、可逆的なBPG、および無損失JPEG 2000を凌駕することができる圧縮方法に基づく新しい無損失画像フォーマットである。 FLIFはすべてのプラットフォームで利用可能であり、画像視聴者はすでにそれをサポートしていますが、主流に命中するための長い方法があります。現在、ストレージやサーバー側のFLIFを使用して意味があります。それは効率的なアーカイブフォーマットのように機能することができます。プロジェクトのGitHubページからコードをつかみ、それをコンパイルする必要があります。あなたが持っていたら fl バイナリインストールされている、PNGイメージをエンコードするには、次のコマンドを使用します。
FLIF -E ORIGINE_PNG OUTPUT_FLIF
置き換える -e withう - そして、画像を「解凍されない」をPNGに戻すために逆の順序で置きます。ツールの面では、Windows用のFLIF WIC APIコンポーネント、Linux用のQT FLIFプラグイン、Phew Image ViewerとMacOS用のQuickLookプラグイン(詳細についてはリンクセクションを参照)があります(詳細についてはリンクセクションを参照)。 zopflipngによって以前に拷問されたイメージと比較して、FLIFはそのファイルサイズをさらに~10%減少させます。印象的な結果!
私たちの最後のヒーローはLeptonで、Dropbox開発者によって寛大に公開された別のオープンソースフォーマットです。 LeptonはJPEGを使ってPNGを使っています。 Leptonは、ロスレスモードで最大22%でJPEGをスリムにすることができます。つまり、エンコーダは元のJPEGファイルと比較して品質の損失を引き起こさないことを意味します。フードレプトンの下では、それらの8×8 JPEGブロックを圧縮するスマートな技術を意味します。ゼロと1を書き込む代わりに、LeptonはVP8算術符号化器を使用してビットマップデータをエンコードします。これは各ブロックの周囲のコンテキストを尊重します。
私たちのテストは非常に効率的で速くなるためにレプトンが証明されました。コマンドは次のように見えました。
LEPTON ORIGINAL.JPG OUTPUT.LEP
そして2つ目または2つのツールでは、オリジナルの1分の1の4分の1だけ小さかった.Lepファイルを作成しました。時間のかかるGuetzliと比較して、レプトンは激しく速いです。同じ方法でLeptonを使うことができます。このフォーマットでは、ストレージコストを20から25パーセント削減できます。これはとてもスナッピーなので、大きな欠点なしでオンザフライエンコーディング/デコードシーケンスを実行できます。ちなみに、decodingコマンドは等しく簡単で、2つのファイルを交換するだけで、結果のファイルは元のJPEGと同じです。
LEPTON ORIGINAL.LEP OUTPUT.JPG
説明されているテクニックを使用して、ユーザーデータストレージを最適化するか、またはWebプロジェクトのロード速度をさらに向上させます。
このチュートリアルに記載されているすべてのソフトウェアはオープンソースであるため、自由に使用できます。下記のほとんどのツールはバイナリダウンロードを持つので、ソースからすべてのコンパイルを妨げる必要はありません。ソフトウェアを起動して実行する方法は次のとおりです。
Guetzli Binaryをつかむ ここに 。それは最も簡単なことです。 zopfliはコードを与えるだけです( 'make'でビルドする) g g 。ただし、Node.js Package Managerを通してそれを取得するのは賢明です。
npm install node-zopfli
FLIFへの役立つリンク:
この記事はもともと発行316に発行されました ネット Webデザイナーや開発者向けの世界で最も売れている雑誌。 ここに問題316を購入してください または ここで購読する 。
関連記事:
(イメージクレジット:Pexelsの負の宇宙) Rectが強力なJavaScriptライブラリである間、そ..