Rgb sang hex php

Chỉ cần một lưu ý khác cho bản thân, trong trường hợp tôi cần nó một lần nữa

/**
 * #rrggbb hoặc #rgb to [r, g, b]
 */

function hex2rgb(string $hex): mảng
{
    $hex = . ltrim($hex, '#');

    if(strlen($hex) == 3)
        return [
            hexdec($hex[0].$hex[0] . ,
            hexdec($hex[1].$hex[1] . ,
            hexdec($hex[2].$hex[2] . ,
        ];
    else
        return [
            hexdec($hex[0].$hex[1] . ,
            hexdec($hex[2].$hex[3] . ,
            hexdec($hex[4].$hex[5] . ,
        ];
}


/**
 * [r, g, b] to #rrggbb
 */

function rgb2hex(array $rgb): chuỗi
{
      return '# .
        . sprintf('%02x', $rgb[0])
        . sprintf('%02x', $rgb[1])
        . sprintf('%02x', $rgb[2]);
}

Để chuyển đổi một chuỗi RGB như “rgb(255, 13, 12)” sang HEX, trước tiên chúng ta cần lấy ba giá trị màu đỏ, lục và lam ra khỏi chuỗi, trong bài viết này chúng ta chỉ nói về chuỗi RGB với số nguyên.

Chúng ta cần xem xét rằng cũng có RGBA cho các màu có kênh alpha với cú pháp như “rgba(255, 13, 12, 0. 5)” điều này sẽ không được đề cập ở đây

Để lấy màu ra khỏi chuỗi, chúng ta sẽ sử dụng biểu thức chính quy

/rgba?\(\s?([0-9]{1,3}),\s?([0-9]{1,3}),\s?([0-9]{1,3})/i

Biểu thức chính quy ở trên khớp với bất kỳ chuỗi nào bắt đầu bằng “rgb”, kiểm tra “a” tùy chọn, sau đó tìm dấu ngoặc và số đầu tiên trong khoảng từ 0 đến 999. Sau số đầu tiên, một dấu phẩy được mong đợi và sau đó là dấu cách hoặc trực tiếp số tiếp theo. Biểu thức chính quy này chỉ khớp cho đến số thứ ba và không kiểm tra thêm kênh alpha hoặc nếu có dấu ngoặc đóng. Bạn có thể tìm thấy các biểu thức chính quy chi tiết hơn trên internet để kiểm tra xem đó có phải là màu RGB hợp lệ hay không, ví dụ: chúng tôi sẽ kiểm tra xem các số có không cao hơn 255 trong mã PHP của chúng tôi hay không

Phần PHP

Chúng tôi bắt đầu với một tệp PHP đơn giản chứa chuỗi CSS của chúng tôi và biểu thức chính quy để lấy màu ra khỏi chuỗi

    $sCSSString = 'rgba(114, 193, 44)';
$sRegex = '/rgba?\(\s?([0-9]{1,3}),\s?([0-9]{1,3}),\s?([0-9]{1,3})/i';

preg_match($sRegex, $sCSSString, $matches);

if(count($matches) != 4){
die('The color count does not match.');
}

$iRed = (int) $matches[1];
$iGreen = (int) $matches[2];
$iBlue = (int) $matches[3];

print_r($iRed . ' ' . $iGreen . ' ' . $iBlue);

Mã này sẽ trả về cho bạn 114 193 44, bây giờ như đã đề cập ở trên, chúng tôi cần kiểm tra xem các giá trị màu có thấp hơn hoặc bằng 255 không

    if($iRed > 255 || $iGreen > 255 || $iBlue > 255){
die('One of the color values is above 255.');
}

Bây giờ chúng tôi chỉ có các giá trị màu hợp lệ, chúng tôi có thể bắt đầu phần chuyển đổi. Để chuyển đổi các số, chúng ta sử dụng hàm PHP dechex để chuyển đổi số thập phân sang thập lục phân

Làm cách nào để chuyển đổi RGB sang hex trong PHP?

Hầu hết trong CSS làm nền hoặc phông chữ, chúng tôi đang sử dụng Mã màu HTML và trong khi nếu chúng tôi cho phép người dùng thêm màu, có thể thêm RGB. Vì vậy, chức năng sau sẽ chuyển đổi từ mã màu HTML sang hex tương ứng (thập lục phân là hệ thống đánh số 16 cơ sở) Mã màu HTML. echo rgb2HEXhtml('100','200','111'); Thế là xong.

RGB được chuyển đổi thành hex như thế nào?

Thứ tự của các màu cơ bản là đỏ, lục và lam (như từ viết tắt gợi ý). Lưu ý rằng nếu các số liệu nằm trong phạm vi 0-1, chúng phải được nhân với 255 trước. Để chuyển màu RGB thành hex, làm việc với từng thành phần trong ba thành phần riêng biệt. Chia số đầu tiên cho 16 . 201/16 = 12 + 0. 5625 (số dư).

Làm cách nào tôi có thể lấy mã màu RGB trong PHP?

Giá trị trả về. .
RGB => Mảng ( [r] => 255 [g] => 255 [b] => 255 )
HEX => #FFFFFF

Làm cách nào để chuyển đổi tên màu thành hệ thập lục phân trong PHP?

$Colors = ARRAY( "black"=>array( "red"=>0x00, "green"=>0x00, "blue"=>0x00), "maroon"=>array( "red"=>0x80, "green . // nhiều màu hơn ở giữa //. "lúa mì"=>mảng( "đỏ"=>0xF5, "xanh"=>0xDE, "xanh"=>0xB3), "khói trắng"=>mảng( "đỏ"=>0xF5, "xanh"=>0xF5,