ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して画像の明るさとコントラストを調整する方法

PHPを使用して画像の明るさとコントラストを調整する方法

王林
王林オリジナル
2023-08-26 19:04:531285ブラウズ

PHPを使用して画像の明るさとコントラストを調整する方法

PHP を使用して画像の明るさとコントラストを調整する方法

明るさとコントラストは、画像の視覚効果を調整する際の重要な要素の 1 つです。画像処理では、明るさを調整することで画像を明るくしたり暗くしたり、コントラストを調整して画像内の異なる色の違いを強調したり弱めたりすることができます。

一般的に使用されるサーバーサイド スクリプト言語として、PHP は豊富な画像処理関数とライブラリを提供します。この記事では、PHPを使って画像の明るさやコントラストを調整する方法をコード例を交えて紹介します。

  1. 画像の明るさを調整する

画像の明るさを調整するには、ピクセルの RGB 値を変更します。以下は、PHP GD ライブラリを使用して画像の明るさを調整する関数の例です。

function adjustBrightness($imagePath, $brightness) {
    $image = imagecreatefromjpeg($imagePath);
    $width = imagesx($image);
    $height = imagesy($image);

    for ($x = 0; $x < $width; $x++) {
        for ($y = 0; $y < $height; $y++) {
            $rgb = imagecolorat($image, $x, $y);
            $oldR = ($rgb >> 16) & 0xFF;
            $oldG = ($rgb >> 8) & 0xFF;
            $oldB = $rgb & 0xFF;

            $newR = $oldR + $brightness;
            $newG = $oldG + $brightness;
            $newB = $oldB + $brightness;

            $newR = max(0, min(255, $newR));
            $newG = max(0, min(255, $newG));
            $newB = max(0, min(255, $newB));

            $newRgb = ($newR << 16) + ($newG << 8) + $newB;

            imagesetpixel($image, $x, $y, $newRgb);
        }
    }

    imagejpeg($image, 'adjusted_image.jpg');
    imagedestroy($image);
}

// 使用示例
adjustBrightness('original_image.jpg', 50); // 将亮度增加50

上記のコードは、画像の各ピクセルを走査し、元の RGB 値を取得し、指定された輝度値に基づいて新しい RGB 値を計算し、imagesetpixel 関数を使用して新しいピクセル値、最後に調整された画像を生成します。

  1. 画像のコントラストを調整する

画像のコントラストを調整するには、ピクセルの RGB 値の範囲を調整します。以下は、PHP GD ライブラリを使用して画像のコントラストを調整する関数の例です。

function adjustContrast($imagePath, $contrast) {
    $image = imagecreatefromjpeg($imagePath);
    $width = imagesx($image);
    $height = imagesy($image);

    for ($x = 0; $x < $width; $x++) {
        for ($y = 0; $y < $height; $y++) {
            $rgb = imagecolorat($image, $x, $y);
            $oldR = ($rgb >> 16) & 0xFF;
            $oldG = ($rgb >> 8) & 0xFF;
            $oldB = $rgb & 0xFF;

            $newR = ($oldR - 127) * $contrast + 127;
            $newG = ($oldG - 127) * $contrast + 127;
            $newB = ($oldB - 127) * $contrast + 127;

            $newR = max(0, min(255, $newR));
            $newG = max(0, min(255, $newG));
            $newB = max(0, min(255, $newB));

            $newRgb = ($newR << 16) + ($newG << 8) + $newB;

            imagesetpixel($image, $x, $y, $newRgb);
        }
    }

    imagejpeg($image, 'adjusted_image.jpg');
    imagedestroy($image);
}

// 使用示例
adjustContrast('original_image.jpg', 1.5); // 将对比度增加1.5倍

上記のコードは、画像の各ピクセルを走査し、元の RGB 値を取得し、指定されたコントラスト値に基づいて新しい RGB 値を計算し、imagesetpixel 関数を使用して新しいピクセル値、最後に調整された画像を生成します。

PHP を使用して画像の明るさとコントラストを調整すると、Web サイト開発者に、より優れた視覚効果を実現するためのより多くの画像処理オプションを提供できます。この記事のコード例がこの目標の達成に役立つことを願っています。

以上がPHPを使用して画像の明るさとコントラストを調整する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

関連記事

続きを見る