web-dev-qa-db-ja.com

画像を圧縮するにはどうすればよいですか?

圧縮する必要がある5,000個の画像があります(私のWebサイトに表示するため)。

Ubuntuは初めてです。だから私は何をしますか?

20
user2950593

私はTrimageとても使いやすいです。

画像を追加するだけで、インストールするために圧縮されます:

Sudo apt-get install trimage

enter image description here

19
Mohamed Slama

「圧縮」という言葉はこの質問で誤って解釈されているようですが、これを見たい文脈によってはまだ有効です。

景色

実際の実稼働環境で直接作業している場合、Webデザイナー、Web開発者、および/またはWebマスターは、画像ファイルを「圧縮」して、ホスティングに迅速にアップロードするのに十分な「軽量」にする必要があります。ローカルのテスト運用環境で作業している場合、これは影響しません。

答えの多くは他の事柄を参照しているように見えますが、ほとんどは、おそらくそのような景色に直面していないためです。それが私がこれを説明し始める理由です。

そう。答えが解決する必要があるものを理解しましょう:

  1. 写真は軽量でなければなりません
  2. 画像は、ファイルサイズを失うために「圧縮」されなければなりませんが、この質問 JPGのバッチ圧縮と名前変更(find -exec、xargs、piping ?)
  3. 画像は、できればGUIを使用してバッチ圧縮する必要があります。

軽量画像

まず、「軽量の画像」がどうあるべきかを理解しましょう。

解像度が1024pxを超える高解像度画像のファイルサイズは大きい場合があります。このスクリーンショットに例を示します。

enter image description here

enter image description here

ファイルプロパティウィンドウで、これが9.5 MBのファイルであることがわかります。これは、アップロードするのにかなりの遅延があり、Webサイトで公開されたときに画面にレンダリングするのにかなりの遅延があります。

それにもかかわらず、画像サイズとグリッド解像度は、高解像度印刷に本当に役立ちます。そのため、この説明では取り上げない別の風景です。

それで、アップロードするのに何年も待たずにウェブサイトでこの画像を使用し、私のウェブサイトにそれを表示するために他の年を待つことができますか?

ファイルを圧縮する必要があります。

そして、「圧縮」について話すとき、私たちが直面しているケースで使用できるようにするために、その品質を明示的に変更する必要があります。

それでは、ターミナルに次のものをドロップしましょう。

convert seminario-tabloide.png test.jpg

これにより、高解像度のPNG形式が「圧縮された」JPG形式に変換されます。 9.5 MBから2.4 MBになります。

enter image description here

まだ大きい?

しかし、2.4 MBはまだ大きなファイルサイズです。さて、他のいくつかの ImageMagickconvertコマンドを使って、より小さく作成してみましょう。ファイルサイズ:

convert test.jpg -quality 50% test-50p.jpg

これは、画像を「圧縮」するために必要なことです。これにより、画像の品質が50%低下し、938.4 KB <===(注:メガバイトではなくKILOBYTES)ファイルサイズが提供されます。

次の方法で同じコマンドのパーセンテージを調整することで、さらに進んでファイルサイズを小さくすることができます。

convert test.jpg -quality 30% test-30p.jpg

この例では、画像のサイズではなく、ファイルの品質を低下させていることに留意してください。これにより、画面にレンダリングしたときに視覚的に影響を受けない圧縮ファイルが作成されますが、大きな用紙サイズ(レターよりも大きいサイズ)で印刷するとアーティファクトが表示されます。

サイズ変更+圧縮=超クール!

今。別のことができます。実際にいくつかのこと:最初に画像のサイズを変更してから圧縮を適用すると、元のファイルサイズよりもファイルサイズが小さくなり、画面にレンダリングするのに便利な画像が提供されますが、印刷にはあまり適していませんが、印刷されたバナーではなく画面に表示する必要がありますか?

それでは、これを実行しましょう。

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

この指示では、アスペクト比を失わないために必要なピクセル数だけ幅1024ピクセルになるように画像のサイズを変更するように求めています。

さて...何だと思う?

ファイルサイズが9.5 MBから...に縮小されました(コンガ付きのサスペンス音楽をお願いします)433.7 KILOBYTES

このように最大圧縮ファイルを最大圧縮したい場合、ファイルに挿入されたオーバーヘッドデータに直面し、ファイルサイズが大きくなります。試してみることはお勧めしませんが、あなたが私に例を実行することを期待しているなら、OK ...ここに行きます!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

そして、単一のコマンドでを433.7 KBから176.2 KBに変更しました。この例は成功しましたが、それでも演習によってファイルサイズが小さくなるとは思わないでください。しかし、この種のエクササイズを実行するとき、あなたは多くの楽しみを持つことができます。

バッチ処理

ああ!しかし、私はほとんどニーズを忘れています。このプロセスを多くの写真に簡単に適用することです。

そのために、2つのプロセスでそれを行うことができます。

ターミナル

これはより高速で簡単です。それでは、ディレクトリ内のすべてのファイルで同じ命令を実行する必要があることを端末に伝えましょう。その後、他の命令について説明します。

すべてを1024pxに変換します(任意のピクセル量を使用できます)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

ここでは、コマンドを選択して、ディレクトリ内のすべてのファイルに対して同じ命令を実行し、変換を適用して、選択しやすくするために異なる名前のコピーをドロップします。

ディレクトリ内のすべての写真の品質をパーセンテージで下げます(必要に応じて任意のパーセンテージを使用します)。

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

ここでは、ファイルサイズを小さくするために、サイズを変更した画像の品質を下げるよう求めています。

これらのコマンドを使用して、結果を確認できます。数時間楽しんだ後、あなたは専門家になります。

ノーチラススクリプト

2015年4月20日、元の質問のような状況に直面したため、調査を行い、質問について助けを求める必要がありました。それが今、私がこれをたくさん知っている理由です。私がこの知識を持って生まれたとは思わない、男。

端末に慣れていない場合、および/または単にファイルのグループを選択して変換を適用するためにGUIを使用したい場合は、ファイルのグループを右クリックして選択するために独自のNautilusアクションスクリプトを作成できますコンテキストメニューのオプション。

そのようなことを行う方法については、質問、回答、コメントの両方を読んでください: Nautilus-Actionsで品質を変更するためにJPG画像をバッチ処理する方法?

幸運を!

43

Jpegイメージを参照している場合、de facto圧縮はできません。 jpegは定義上であるため圧縮ファイル形式です(すべてのノイズと不要なピクセルは既に削除されています)。うまく圧縮できますが、合計サイズはほぼ同じままです。 jpegで知っている唯一の高度な圧縮アルゴリズムはzipxです。ただし、zipxはWinzip独自のものであり、最大値を保証します。サイズを30%削減(zipxアーカイブモード)。

画像をウェブ上に表示するには、最初にそれらのサイズを変更し(それぞれ1MB未満)、オプションでそれらをpngファイル形式に変換する必要があります。 PNG(= portable network graphics)は、高速なWeb転送と高速な表示のために特別に最適化されています。上級ユーザーは、これらの画像をwebp形式(Googleの写真用形式、最速読み込みアルゴリズム)に変換することもできます。

XnConvertで画像をバッチ変換してから、XnViewで画像のサイズをバッチで変更できます。ここからdebパッケージをダウンロードします。 http://www.xnview.com/de/xnviewmp/#downloads 、それを右クリックしてGnome Softwareで開きます。

ネットワークの読み込み速度を気にせず、品質を気にする場合は、画像に手を加えずにデジタルライブラリを作成する必要があります。おそらくそれらを公開サーバー(Yahoo、Googleなど)にアップロードします。

0
ipse lute