最新のWeb開発では、高品質の画像はユーザーエクスペリエンスを大幅に改善できます。ただし、高解像度の画像のサイズが大きい傾向があるため、Webページの読み込みが遅くなり、帯域幅の消費が増加します。画質とWebページのパフォーマンスのバランスをとるために、画像圧縮は不可欠な最適化方法になりました。
ますます多くのユーザーが高解像度ディスプレイを使用するにつれて、画質に対するウェブサイトの需要も高まっています。ただし、高解像度画像のファイルサイズが大きいため、Webページの読み込みが長すぎてユーザーエクスペリエンスに影響を与え、帯域幅とサーバーの負担が増加する可能性があります。この問題を回避するために、ロスレス画像圧縮は、Webページの読み込み速度を改善し、帯域幅の使用を最適化する効果的な方法です。
適切な圧縮処理を使用すると、画質を維持しながらファイルサイズを削減し、ページの読み込み速度とユーザーエクスペリエンスを改善できます。
PHPには、高解像度のロスレス画像圧縮を実現するのに役立つ複数のオープンソースライブラリがあります。一般的に使用されているのは、 Imagicicと介入画像が含まれます。これらのライブラリは、プロジェクトに画像圧縮機能を統合することを促進するクリーンなAPIを提供します。
Imagick:
// 作成するImagick物体
$image = new Imagick('input.jpg');
// 画質を設定します
$image->setImageCompressionQuality(90);
// 写真を圧縮して保存します
$image->writeImage('output.jpg');
// 破壊するImagick物体
$image->destroy();
介入画像:
// 写真を圧縮して保存します
Image::make('input.jpg')->save('output.jpg', 90);
PHPのGDライブラリは、オープンソースライブラリに加えて、一般的に使用される画像処理ツールでもあり、基本的な画像圧縮機能を実現できます。
例えば:
// 作成する原始图像
$sourceImage = imagecreatefromjpeg('input.jpg');
// 元の画像の幅と高さを取得します
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
// 作成する目标图像
$destinationImage = imagecreatetruecolor($sourceWidth, $sourceHeight);
// 圧縮画像
imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $sourceWidth, $sourceHeight, $sourceWidth, $sourceHeight);
// ターゲット画像を保存します
imagejpeg($destinationImage, 'output.jpg', 90);
// 無料のメモリ
imagedestroy($sourceImage);
imagedestroy($destinationImage);
画像圧縮を実行するときは、圧縮品質パラメーターを設定することにより、出力画像の品質を制御できます。高品質では詳細が保存されますが、それに応じてファイルサイズが増加します。この記事の例では、90を圧縮品質パラメーターとして使用しました。これは一般的な妥協です。
圧縮品質は線形に変化しないことに注意してください。高品質のパラメーターをわずかに調整すると、ファイルサイズが急激に増加します。したがって、最適なバランスポイントを見つけるために、特定のニーズに基づいて複数のテストを実施することをお勧めします。
PHPのさまざまな画像処理ツールとライブラリを使用することにより、高解像度の損失のない画像圧縮を効率的に実現し、Webページの読み込み速度を最適化し、帯域幅の使用を効果的に削減できます。実際に使用すると、最良の結果を得るには、ニーズと行動テストに従って圧縮品質パラメーターを調整する必要があります。
写真の合理的な最適化は、ユーザーエクスペリエンスを改善するだけでなく、Webサイトの全体的なパフォーマンスを大幅に改善し、サーバーの負担を軽減し、ユーザーにスムーズなアクセスエクスペリエンスを提供します。