Rumah > pembangunan bahagian belakang > tutorial php > Pengaturcaraan PHP berwarna-warni: Menguasai fungsi operasi warna

Pengaturcaraan PHP berwarna-warni: Menguasai fungsi operasi warna

WBOY
Lepaskan: 2023-06-20 09:10:01
asal
1520 orang telah melayarinya

Dalam pengaturcaraan PHP, fungsi operasi warna adalah bahagian penting. Dengan mengawal warna, kami boleh mencipta halaman web dan aplikasi yang berwarna-warni dan terang. Artikel ini akan memperkenalkan beberapa fungsi operasi warna PHP yang biasa digunakan dan cara menggunakannya.

1. Tukar nilai warna RGB kepada nilai warna heksadesimal

Dalam penghasilan halaman web, kami biasanya menggunakan nilai warna heksadesimal untuk mewakili warna. Tetapi kadangkala kita perlu menggunakan mod warna RGB untuk menetapkan warna Dalam kes ini, kita perlu menukar nilai warna RGB kepada nilai warna heksadesimal. Di bawah ialah fungsi yang menukar nilai warna RGB kepada nilai warna heksadesimal.

function rgbToHex($r, $g, $b) {
    $r = dechex($r);
    $g = dechex($g);
    $b = dechex($b);

    return '#' . str_pad($r, 2, '0', STR_PAD_LEFT) . str_pad($g, 2, '0', STR_PAD_LEFT) . str_pad($b, 2, '0', STR_PAD_LEFT);
}
Salin selepas log masuk

Dalam fungsi di atas, $r, $g, dan $b masing-masing mewakili tiga saluran merah, hijau dan biru dalam nilai warna RGB. Fungsi dechex() menukar nombor perpuluhan kepada nombor perenambelasan, dan fungsi str_pad() digunakan untuk melapik aksara.

2. Kira perbezaan antara dua warna

Kadang-kadang kita perlu membandingkan perbezaan antara dua warna, kita boleh menggunakan fungsi berikut.

function colorDistance($color1, $color2) {
    $r1 = hexdec(substr($color1, 1, 2));
    $g1 = hexdec(substr($color1, 3, 2));
    $b1 = hexdec(substr($color1, 5, 2));

    $r2 = hexdec(substr($color2, 1, 2));
    $g2 = hexdec(substr($color2, 3, 2));
    $b2 = hexdec(substr($color2, 5, 2));

    return sqrt(pow($r1 - $r2, 2) + pow($g1 - $g2, 2) + pow($b1 - $b2, 2));
}
Salin selepas log masuk

Dalam fungsi di atas, $color1 dan $color2 masing-masing mewakili perwakilan heksadesimal bagi dua warna. Fungsi substr() digunakan untuk memintas rentetan, fungsi hexdec() digunakan untuk menukar nombor perenambelasan kepada nombor perpuluhan, fungsi pow() digunakan untuk mengira kuasa, dan fungsi sqrt() digunakan untuk mengira punca kuasa dua.

3. Hasilkan warna rawak

Jika kita perlu menghasilkan warna rawak dalam kod, fungsi berikut boleh membantu kita.

function randomHexColor() {
    $r = dechex(rand(0, 255));
    $g = dechex(rand(0, 255));
    $b = dechex(rand(0, 255));

    return '#' . str_pad($r, 2, '0', STR_PAD_LEFT) . str_pad($g, 2, '0', STR_PAD_LEFT) . str_pad($b, 2, '0', STR_PAD_LEFT);
}
Salin selepas log masuk

Antara fungsi di atas, fungsi rand() digunakan untuk menjana nombor rawak antara 0 hingga 255. Bahagian selebihnya juga adalah untuk menukar nilai warna RGB kepada nilai warna heksadesimal yang sepadan.

4. Tukarkan gambar kepada nilai warna RGB

Kadang-kadang kita perlu mendapatkan maklumat warna daripada gambar ini, kita boleh menggunakan fungsi berikut.

function imageColors($image) {
    $colors = array();

    $width = imagesx($image);
    $height = imagesy($image);

    for ($y = 0; $y < $height; $y++) {
        for ($x = 0; $x < $width; $x++) {
            $colorIndex = imagecolorat($image, $x, $y);
            $colorRgb = imagecolorsforindex($image, $colorIndex);
            $color = rgbToHex($colorRgb['red'], $colorRgb['green'], $colorRgb['blue']);

            if (!in_array($color, $colors)) {
                $colors[] = $color;
            }
        }
    }

    return $colors;
}
Salin selepas log masuk

Dalam fungsi di atas, $image mewakili sumber imej, yang boleh diperolehi melalui fungsi seperti imagecreatefromjpeg() dan imagecreatefrompng(). Fungsi imagesx() dan imagesy() digunakan untuk mendapatkan lebar dan tinggi imej. Fungsi imagecolorat() digunakan untuk mendapatkan nilai indeks warna koordinat yang ditentukan, dan fungsi imagecolorsforindex() digunakan untuk menukar nilai indeks warna kepada nilai warna RGB. Akhir sekali, nilai warna RGB ditukar kepada nilai warna heksadesimal, dan ditambah pada tatasusunan dan dikembalikan.

Fungsi operasi warna PHP yang diperkenalkan di atas boleh membolehkan kami mengawal warna dengan lebih mudah. Fungsi ini juga boleh berguna apabila kita perlu membuat pelarasan pada gaya halaman web atau aplikasi. Saya percaya bahawa dengan mempelajari fungsi ini, pengaturcaraan PHP kami akan menjadi lebih berwarna dan terang.

Atas ialah kandungan terperinci Pengaturcaraan PHP berwarna-warni: Menguasai fungsi operasi warna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan