Konvertieren Sie RGB in Hex-Farbwerte in PHP

Lesezeit: 3 Minuten

In meinem Code habe ich

$color = rgb(255, 255, 255);

Ich möchte dies in einen Hex-Farbcode umwandeln

$color="#ffffff";

  • gist.github.com/Pushplaybang/5432844 … Schau mal

    – Tuschar

    6. Oktober 2015 um 5:57 Uhr

  • Dadurch wird die Konvertierungsfunktion ausgeführt

    – Eric Schoberg

    22. März 2019 um 14:26 Uhr

Benutzer-Avatar
Benutzer3942918

Eine einfache sprintf Wird besorgt.

$color = sprintf("#%02x%02x%02x", 13, 0, 255); // #0d00ff

Um das Format aufzuschlüsseln:

  • # – das wörtliche Zeichen #
  • % – Beginn der Konvertierungsspezifikation
  • 0 – Zeichen, das zum Auffüllen verwendet werden soll
  • 2 – Mindestanzahl von Zeichen, die die Konvertierung ergeben sollte, ggf. mit den oben genannten aufgefüllt
  • x – Das Argument wird als Ganzzahl behandelt und als Hexadezimalzahl mit Kleinbuchstaben dargestellt
  • %02x%02x – Die obigen vier wiederholten sich noch zweimal

Sie können die folgende Funktion verwenden

function fromRGB($R, $G, $B)
{

    $R = dechex($R);
    if (strlen($R)<2)
    $R = '0'.$R;

    $G = dechex($G);
    if (strlen($G)<2)
    $G = '0'.$G;

    $B = dechex($B);
    if (strlen($B)<2)
    $B = '0'.$B;

    return '#' . $R . $G . $B;
}

Dann, echo fromRGB(115,25,190); wird drucken #7319sein

Quelle: RGB zu Hex-Farben und Hex-Farben zu RGB – PHP

Benutzer-Avatar
IAmMilinPatel

Sie können diesen einfachen Code unten ausprobieren. Sie können den RGB-Code auch dynamisch im Code übergeben.

$rgb = (123,222,132);
$rgbarr = explode(",",$rgb,3);
echo sprintf("#%02x%02x%02x", $rgbarr[0], $rgbarr[1], $rgbarr[2]);

Dies wird Code wie #7bde84 zurückgeben

  • Die erste Codezeile sieht falsch aus, ist dies als Array gemeint oder haben Sie den Funktionsnamen “rgb” vergessen?

    – Donquijote

    2. November 2017 um 2:31 Uhr

  • Es ist ein Array. Hat für mich sehr gut geklappt, also habe ich nichts falsch daran gefunden.

    – IAmMilinPatel

    2. November 2017 um 2:51 Uhr

  • Ja. Nun, ich bin kein großer PHP-Experte, aber der obige Code hat in diesem Fall für mich ausgereicht! Ich dachte, es könnte auch anderen helfen, also poste es hier …

    – IAmMilinPatel

    2. November 2017 um 3:00 Uhr

Hier ist eine Funktion, die die Zeichenfolgenversion von entweder an akzeptiert rgb oder rgba und die zurückgeben hex Farbe.

    function rgb_to_hex( string $rgba ) : string {
        if ( strpos( $rgba, '#' ) === 0 ) {
            return $rgba;
        }

        preg_match( '/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i', $rgba, $by_color );

        return sprintf( '#%02x%02x%02x', $by_color[1], $by_color[2], $by_color[3] );
    }

Beispiel:
rgb_to_hex( 'rgba(203, 86, 153, 0.8)' ); // Kehrt zurück #cb5699

Sie können dies versuchen

function rgb2html($r, $g=-1, $b=-1)
{
    if (is_array($r) && sizeof($r) == 3)
        list($r, $g, $b) = $r;

    $r = intval($r); $g = intval($g);
    $b = intval($b);

    $r = dechex($r<0?0:($r>255?255:$r));
    $g = dechex($g<0?0:($g>255?255:$g));
    $b = dechex($b<0?0:($b>255?255:$b));

    $color = (strlen($r) < 2?'0':'').$r;
    $color .= (strlen($g) < 2?'0':'').$g;
    $color .= (strlen($b) < 2?'0':'').$b;
    return '#'.$color;
}

Benutzer-Avatar
Ostap Brehin

Falls Sie externe Lösungen verwenden möchten, spatie hat ein Paket, um genau das zu tun, was Sie wollen:

https://github.com/spatie/color

$rgb = Rgb::fromString('rgb(55,155,255)');

echo $rgb->red(); // 55
echo $rgb->green(); // 155
echo $rgb->blue(); // 255

echo $rgb; // rgb(55,155,255)

$rgba = $rgb->toRgba(); // `Spatie\Color\Rgba`
$rgba->alpha(); // 1
echo $rgba; // rgba(55,155,255,1)

$hex = $rgb->toHex(); // `Spatie\Color\Hex`
echo $hex; // #379bff

$hsl = $rgb->toHsl();
echo $hsl; // hsl(210,100%,100%)

1100950cookie-checkKonvertieren Sie RGB in Hex-Farbwerte in PHP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy