画像のサムネイルを処理する場合、色割り当ては非常に重要な部分です。適切な色管理により、サムネイルはより多くの詳細を保持し、リボンや歪みなどの問題を回避し、より良い視覚効果を持つことができます。この記事では、PHPを例として使用して、いくつかの実用的な色割り当て技術を説明して、サムネイルの全体的な品質を改善するのに役立ちます。
サムネイルのサイズは通常小さく、ピクセル数が限られています。色の割り当てが不合理である場合、画質を低下させるのは簡単です。例えば:
数量が少なすぎると、画像の詳細が失われます。
色の選択は不正確であり、明らかな色の違いが生じます。
透明チャネルは適切に処理されておらず、バックグラウンドの例外が生じます。
これらの問題を回避するには、プログラム内の色を合理的に計画および割り当てる必要があります。
PHPでは、 GDライブラリは一般的に画像処理に使用されます。以下はいくつかの実用的な手法です。
画像を処理する前に、真の色のキャンバスを作成することを優先し、より多くの色が利用できるようにします。
<?php
// 新しい真の色の画像を作成します
$thumbWidth = 200;
$thumbHeight = 200;
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
// 元の画像をロードします
$source = imagecreatefromjpeg('https://m66.net/images/original.jpg');
// コピーしてサイズを変更します
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imagesx($source), imagesy($source));
// サムネイルを保存します
imagejpeg($thumb, 'https://m66.net/images/thumbnail.jpg');
// 無料のメモリ
imagedestroy($thumb);
imagedestroy($source);
?>
ImageCreateTrueColor()は、色の量の制限を回避し、元の画像の詳細を最大範囲で保存するための鍵です。
画像にPNGなどの透明な背景がある場合は、コピーする前に透明な情報を処理してください。
<?php
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
$source = imagecreatefrompng('https://m66.net/images/original.png');
// 透明な色が許可されています
imagesavealpha($thumb, true);
$transparent = imagecolorallocatealpha($thumb, 0, 0, 0, 127);
imagefill($thumb, 0, 0, $transparent);
// コピーしてサイズを変更します
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imagesx($source), imagesy($source));
// サムネイルを保存します
imagepng($thumb, 'https://m66.net/images/thumbnail.png');
imagedestroy($thumb);
imagedestroy($source);
?>
ImagesAvealpha()およびImageColorallocatealpha()は、透明な背景が適切に残ることを保証できます。
スケーリングプロセス中に、 ImageCopyResized ()の代わりにImageCopyResampled()を使用することをお勧めします。前者は滑らかで、結果はより繊細で自然です。
// 正しいデモンストレーション
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imagesx($source), imagesy($source));
ImageCopyresized()は高速ですが、リボンになりやすく、高品質のサムネイル生成には推奨されません。
最終的にGIFとして保存すると、 ImageTrueColortopalette()を使用して真の色の画像をパレット画像に変換し、合理的に色の数を制御できます。
<?php
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
$source = imagecreatefromgif('https://m66.net/images/original.gif');
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imagesx($source), imagesy($source));
// カラーパレットに変換します,最大サポート256色
imagetruecolortopalette($thumb, true, 256);
// サムネイルを保存します
imagegif($thumb, 'https://m66.net/images/thumbnail.gif');
imagedestroy($thumb);
imagedestroy($source);
?>
パレットの最適化が行われない場合、GIFはぼやけなくなるか、色の偏差が明らかになります。
画像のサムネイル処理、色の合理的な割り当て、透明チャネルの正しい管理、および高品質のスケーリングアルゴリズムの使用は、最終画像の視覚的およびプロフェッショナリズムを大幅に改善することができます。
サムネイルの品質をさらに一歩にしたい場合は、PHP処理プロセスを最適化するための上記のヒントから始めることもできます。
覚えておいてください:詳細は品質を決定します! ??