画像処理は、特に画像を圧縮する必要がある場合、PHPで一般的なタスクです。イメージファイルのサイズの場合、特に多数の画像を処理する必要がある場合、画像を適切に圧縮することで、読み込み速度が大幅に増加し、サーバーの負担を減らすことができます。 ImagetRueColortopaletteは、画像を真のカラーモードからパレットモードに変換するのに役立つ便利な関数であり、それによりファイルサイズを削減します。この記事では、 ImagetrueColortopalette関数を使用し、いくつかのベストプラクティスを共有して、画像ファイルサイズを効果的に圧縮する方法について説明します。
ImagetRueColortopaletteは、PHP GDライブラリの関数です。その機能は、真の色の画像(24ビット色)をパレットモード(通常8ビット色)に変換することです。色の深さを減らすことにより、画像のファイルサイズを大幅に圧縮できます。これは、画像をアップロードする必要があるアプリケーション、サムネイルが生成される、またはWebページに表示されるアプリケーションにとって特に重要です。
関数プロトタイプは次のとおりです。
bool imagetruecolortopalette ( resource $image, bool $dither, int $num_colors )
パラメーター説明:
$画像:処理される画像リソース(通常、 ImageCreateFromJPeg() 、 ImageCreateFrommpng()などの関数によって作成されます)。
$ dither :ジッターを有効にするかどうか(画像が下に着色されたときに発生する可能性のある微粒子効果、 trueに設定すると有効になります)。
$ num_colors :最終画像の色の最大数(通常256以下)。
機能は、画像の色を指定された数値に減らし、Web上の表示に適した圧縮画像を返すことです。
多くの画像形式(JPEGやPNGなど)は、特に画像に多くの色と詳細がある場合、ファイルサイズ自体が大きくなります。画像のファイルサイズは、特にモバイル端子で閲覧する場合、ページの読み込み速度に直接影響します。ファイルが大きすぎると、負荷が遅くなる可能性があります。
真の色の画像をパレット画像に変換することにより、画像の色深さを大幅に減らし、それにより画像ファイルを効果的に圧縮できます。 Imagetruecolortopalette関数を使用することの主な利点のいくつかは次のとおりです。
色の深さを減らす:画像の色を24ビット(真の色)から8ビット(パレットモード)に減らし、画像ファイルのサイズを大幅に削減します。
読み込み速度の向上:画像ファイルを小さくすると、ページの読み込みを大幅に高速化できます。
帯域幅の保存:画像のアップロードまたはダウンロードを必要とするアプリケーションの場合、小さいファイルは帯域幅を保存することを意味します。
ImagetrueColortopalette関数を使用して画像を圧縮する簡単な例を次に示します。
<?php
// 画像のロード
$image = imagecreatefromjpeg('input.jpg');
// 画像をパレット画像に変換します,ほとんど 256 色の種類,ジッターを有効にします
imagetruecolortopalette($image, true, 256);
// ファイルへの出力画像
imagepng($image, 'output.png');
// メモリをきれいにします
imagedestroy($image);
?>
上記のコードでは、 ImageCreateFromJPeg()を使用してJPEG画像をロードし、 ImageTrueColortopalette()を使用して、画像を最大256色のパレットパターンに変換します。最後に、圧縮画像をPNG形式として保存します。
適切な数の色(つまり、 $ num_colors )を選択することは、圧縮と画質のバランスにとって重要です。色の数を選択するための提案を次に示します。
256色:ほとんどの標準画像に適しています。特に、アイコンやシンプルなグラフィックスなどの画像の色が少ない場合。
128色以下:小さなアイコンの生成や画像の単純化など、画像サイズをさらに圧縮する必要があるシーンに適しています。色を減らすと画質が低下するため、ニーズに応じて調整する必要があることに注意してください。
Jitter vs. Jitter :ジッターは色の遷移をより自然にすることができますが、画像ファイルのサイズが増加します。画像に大きな色の違いがある場合、ジッターは無効になる可能性があります。
Imagetruecolortopalette機能は画像の圧縮に非常に効果的ですが、使用する際に注意すべきことがいくつかあります。
ジッターの使用:より高い画質が必要なシナリオでは、ジッターを有効にすることを検討できます。ただし、ジッターを有効にするとファイルサイズが増加することに注意してください。低品質または低解像度の画像の場合、ジッターは必要ない場合があります。
圧縮前後の比較:画像を圧縮するたびに、最初に元の画像と圧縮画像の品質を比較することが最善です。いくつかの複雑な画像の場合、過度の圧縮は画像の歪みを引き起こし、ユーザーエクスペリエンスに影響を与える可能性があります。
画像のバッチ処理:画像を処理する必要がある場合は、上記のコードを関数にカプセル化し、複数の画像を処理できます。 Glob()などの関数を使用して、フォルダー内の画像ファイルをトラバースし、バッチ圧縮を実行します。
適切な画像形式を選択します。PNG形式はパレット画像の処理に適していますが、JPEG形式は写真のような画像に対してより効果的です。したがって、圧縮形式を選択するときは、画像の種類に基づいて決定を下します。
ImagetrueColortopalette関数は、画像のファイルサイズを効果的に削減できる強力なツールであり、Webでの使用に適した画像を提供します。真のカラー画像をパレット画像に変換することにより、ページの読み込み速度を効果的に改善し、帯域幅を保存できます。それを使用する場合、適切な数の色を選択し、最良の圧縮効果を達成するために実際のニーズに応じてジッターを有効にするかどうかを選択する必要があります。
合理的な使用と構成により、Webサイトの画像リソースを大幅に最適化し、ユーザーエクスペリエンスを向上させ、ページの読み込みをスピードアップできます。