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

王林
リリース: 2023-08-26 19:06:01
オリジナル
1264 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!