Maison > Article > développement back-end > Comment ajuster la luminosité et le contraste d'une 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.
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
函数设置新的像素值,最终生成一张调整后的图片。
调整图片的对比度可以通过调整像素的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
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!