ホームページ  >  記事  >  バックエンド開発  >  PHPで画像圧縮を実装する方法

PHPで画像圧縮を実装する方法

WBOY
WBOYオリジナル
2016-06-20 13:04:302045ブラウズ

PHP で画像圧縮を実現する方法

PHP プログラム開発では、サムネイルの生成が頻繁に行われますが、PHP を使用してサムネイルを生成するプロセス自体は難しくありません。

しかし、PHP では、生成されるサムネイル画像のサイズと品質を最適化し、調整できることをご存知ですか?

つまり、PHP は生成されるサムネイルの鮮明さと、生成されるサムネイルのボリュームを制御できます。

PHP を使用して画像圧縮を実現する方法を見てみましょう:

まず、PHP を使用して画像を圧縮するプログラム コードを見てみましょう:

<p><?php</p><p>header('Content-type: image/PNG');</p><p>$image=@imagecreatefrompng('http://www.scutephp.com/app/v/default/img/logo.png');</p><p>imagepng($image,'logo.png',0); //注意后面那个数字0,这里即压缩等级,参数范围:0-9*/</p><p>imagedestroy($image);</p><p>?></p>

上記の imagepng 関数の 3 番目のパラメーターは、生成される画像のサイズと品質を制御する重要なパラメーターです。このパラメーターは、生成される画像の品質レベルを意味します。 10 レベル (0 ~ 9) に分けることができます。レベル 0 では圧縮がなく、画像は最も鮮明ですが、画像のサイズも最大になります。圧縮レベルが増加し続けると、画像はますます小さくなり、鮮明さが失われますが、圧縮された画像のサイズは元の画像の 50% まで縮小でき、圧縮率は依然として非常に高くなります。

以下の例を見てみましょう。元の画像のボリュームは 125k です。以下は、さまざまな圧縮レベル後のテスト結果です。 -> サイズ = 225K

imagepng($img,null,1) -->サイズ = 85.9K

imagepng($img,null,2);サイズ = 83.7K

imagepng($img,null,3) -->サイズ = 80.9K

imagepng($img,null,4); 74.6K

imagepng($img,null,5) -->サイズ = 73.8K

サイズ = 73K

imagepng($img,null,7) --> サイズ = 72.4K

imagepng($img,null,8); 🎜>imagepng ($img,null,9); --> Size = 70.6K

圧縮レベルが 0 の場合、元の画像は実際に圧縮されているため、サイズが大きくなることに注意してください。レベル 0 の圧縮はまったく圧縮しないことを意味するため、サイズは元の画像より大きくなります。

上記の結論と実際のテスト結果に基づくと、画像を最適化する場合は、一般にレベル 2 を使用するのがより適切であるという結論になります。画像には歪みはありませんが、音量は 30% 減少します。最適化の目的を達成します。レベル 6、7、8、または 9 の圧縮を使用すると、画像は歪みますが、音量の減少は明らかではありません。したがって、これらのレベルを使用して画像を圧縮および最適化することは適切ではありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。