Maison  >  Article  >  développement back-end  >  Comment ajuster la luminosité et le contraste d'une image en utilisant PHP

Comment ajuster la luminosité et le contraste d'une image en utilisant PHP

王林
王林original
2023-08-26 19:04:531285parcourir

Comment ajuster la luminosité et le contraste dune image en utilisant PHP

Comment régler la luminosité et le contraste des images à l'aide de PHP

La luminosité et le contraste sont l'un des facteurs importants dans l'ajustement de l'effet visuel des images. Dans le traitement d'image, vous pouvez rendre une image plus claire ou plus sombre en ajustant la luminosité, et vous pouvez améliorer ou atténuer les différences entre les différentes couleurs d'une image en ajustant le contraste.

PHP, en tant que langage de script côté serveur couramment utilisé, fournit une multitude de fonctions et de bibliothèques de traitement d'images. Cet article explique comment utiliser PHP pour ajuster la luminosité et le contraste des images, avec des exemples de code.

  1. Ajuster la luminosité de l'image

Le réglage de la luminosité de l'image peut être obtenu en modifiant la valeur RVB du pixel. Vous trouverez ci-dessous un exemple de fonction qui utilise la bibliothèque PHP GD pour ajuster la luminosité d'une image.

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

Le code ci-dessus traverse chaque pixel de l'image, obtient la valeur RVB d'origine et calcule la nouvelle valeur RVB en fonction de la valeur de luminosité spécifiée, puis utilise la fonction imagesetpixel pour définir la nouvelle valeur de pixel, et génère enfin une image ajustée. 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

    Ajuster le contraste de l'image

    🎜Le réglage du contraste de l'image peut être obtenu en ajustant la plage de valeurs RVB des pixels. Vous trouverez ci-dessous un exemple de fonction qui utilise la bibliothèque PHP GD pour ajuster le contraste d'une image. 🎜rrreee🎜Le code ci-dessus traverse chaque pixel de l'image, obtient la valeur RVB d'origine et calcule une nouvelle valeur RVB basée sur la valeur de contraste spécifiée, puis utilise la fonction imagesetpixel pour définir la nouvelle valeur de pixel, et génère enfin une image ajustée. 🎜🎜L'utilisation de PHP pour ajuster la luminosité et le contraste des images peut fournir aux développeurs de sites Web davantage d'options de traitement d'image pour obtenir de meilleurs effets visuels. Espérons que les exemples de code contenus dans cet article vous aideront à atteindre cet objectif. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus