Cara melaraskan kecerahan dan kontras gambar menggunakan PHP
Kecerahan dan kontras adalah salah satu faktor penting dalam melaraskan kesan visual gambar. Dalam pemprosesan imej, anda boleh menjadikan gambar lebih cerah atau lebih gelap dengan melaraskan kecerahan, dan anda boleh meningkatkan atau melemahkan perbezaan antara warna berbeza dalam gambar dengan melaraskan kontras.
PHP, sebagai bahasa skrip sebelah pelayan yang biasa digunakan, menyediakan pelbagai fungsi pemprosesan imej dan perpustakaan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaraskan kecerahan dan kontras imej, dengan contoh kod.
Melaraskan kecerahan gambar boleh dicapai dengan menukar nilai RGB piksel. Di bawah ialah contoh fungsi yang menggunakan perpustakaan PHP GD untuk melaraskan kecerahan imej.
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
Kod di atas merentasi setiap piksel imej, memperoleh nilai RGB asal dan mengira nilai RGB baharu berdasarkan nilai kecerahan yang ditentukan, kemudian menggunakan fungsi imagesetpixel
untuk menetapkan nilai piksel baharu, dan akhirnya menghasilkan gambar Dilaraskan. 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
untuk menetapkan nilai piksel baharu, dan akhirnya menghasilkan gambar Dilaraskan. 🎜🎜Menggunakan PHP untuk melaraskan kecerahan dan kontras imej boleh menyediakan pembangun tapak web dengan lebih banyak pilihan pemprosesan imej untuk mencapai kesan visual yang lebih baik. Semoga contoh kod dalam artikel ini akan membantu anda mencapai matlamat ini. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaraskan kecerahan dan kontras imej menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!