Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar rgb kepada heksadesimal dalam php

Bagaimana untuk menukar rgb kepada heksadesimal dalam php

藏色散人
藏色散人asal
2021-11-18 09:46:292033semak imbas

Cara menukar RGB kepada perenambelasan dalam PHP: 1. Cipta fail sampel PHP 2. Gunakan kaedah "function RGBToHex($rgb){...}" untuk menukar RGB kepada Heksadesimal.

Bagaimana untuk menukar rgb kepada heksadesimal dalam php

Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.1, komputer DELL G3

php Cara menukar rgb kepada sistem heksadesimal?

Cara menukar warna heksadesimal dan nilai warna RGB​​dalam PHP:

Hari ini saya akan berkongsi dengan anda artikel tentang sepuluh warna dalam PHP Editor berpendapat kandungannya agak bagus tentang kaedah menukar warna heksadesimal dan nilai warna RGB Sekarang saya berkongsi dengan anda:

Nilai warna heksadesimal biasanya dinyatakan sebagai #FFFFFF, dan pada masa ini ia juga dikurangkan kepada. #FFF , premisnya ialah dua digit mesti sama seperti #FEFEFE yang tidak boleh dikurangkan. Format warna RGB terdiri daripada tiga kumpulan nombor dari 0 hingga 255, yang masing-masing mewakili nilai warna merah, hijau dan biru.

Kemudian, menukar heksadesimal kepada nilai warna RGB sebenarnya untuk menukar dua digit selepas tanda # kepada perpuluhan sebagai satu unit.

Kodnya adalah seperti berikut:

/** 
* 将16进制颜色转换为RGB
* author www.jb51.net
*/
function hex2rgb($hexColor){
 $color=str_replace('#','',$hexColor);
 if (strlen($color)> 3){
 $rgb=array(
  'r'=>hexdec(substr($color,0,2)),
  'g'=>hexdec(substr($color,2,2)),
  'b'=>hexdec(substr($color,4,2))
 );
 }else{
 $r=substr($color,0,1). substr($color,0,1);
 $g=substr($color,1,1). substr($color,1,1);
 $b=substr($color,2,1). substr($color,2,1);
 $rgb=array( 
  'r'=>hexdec($r),
  'g'=>hexdec($g),
  'b'=>hexdec($b)
 );
 }
 return $rgb;
}

Cara penulisan lain

/**
   * 十六进制转RGB
   * @param string $color 16进制颜色值
   * @return array
   */
  public static function hex2rgb($color) {
    $hexColor = str_replace('#', '', $color);
    $lens = strlen($hexColor);
    if ($lens != 3 && $lens != 6) {
      return false;
    }
    $newcolor = '';
    if ($lens == 3) {
      for ($i = 0; $i < $lens; $i++) {
        $newcolor .= $hexColor[$i] . $hexColor[$i];
      }
    } else {
      $newcolor = $hexColor;
    }
    $hex = str_split($newcolor, 2);
    $rgb = [];
    foreach ($hex as $key => $vls) {
      $rgb[] = hexdec($vls);
    }
    return $rgb;
  }

Warna RGB dan warna perenambelasan boleh ditukar ganti

/**
   * RGB转 十六进制
   * @param $rgb RGB颜色的字符串 如:rgb(255,255,255);
   * @return string 十六进制颜色值 如:#FFFFFF
   */
  function RGBToHex($rgb){
    $regexp = "/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/";
    $re = preg_match($regexp, $rgb, $match);
    $re = array_shift($match);
    $hexColor = "#";
    $hex = array(&#39;0&#39;, &#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;, &#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;E&#39;, &#39;F&#39;);
    for ($i = 0; $i < 3; $i++) {
      $r = null;
      $c = $match[$i];
      $hexAr = array();
      while ($c > 16) {
        $r = $c % 16;
        $c = ($c / 16) >> 0;
        array_push($hexAr, $hex[$r]);
      }
      array_push($hexAr, $hex[$c]);
      $ret = array_reverse($hexAr);
      $item = implode(&#39;&#39;, $ret);
      $item = str_pad($item, 2, &#39;0&#39;, STR_PAD_LEFT);
      $hexColor .= $item;
    }
    return $hexColor;
  }
  /**
   * 十六进制 转 RGB
   */
  function hex2rgb($hexColor) {
    $color = str_replace(&#39;#&#39;, &#39;&#39;, $hexColor);
    if (strlen($color) > 3) {
      $rgb = array(
        &#39;r&#39; => hexdec(substr($color, 0, 2)),
        &#39;g&#39; => hexdec(substr($color, 2, 2)),
        &#39;b&#39; => hexdec(substr($color, 4, 2))
      );
    } else {
      $color = $hexColor;
      $r = substr($color, 0, 1) . substr($color, 0, 1);
      $g = substr($color, 1, 1) . substr($color, 1, 1);
      $b = substr($color, 2, 1) . substr($color, 2, 1);
      $rgb = array(
        &#39;r&#39; => hexdec($r),
        &#39;g&#39; => hexdec($g),
        &#39;b&#39; => hexdec($b)
      );
    }
    return $rgb;
  }

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menukar rgb kepada heksadesimal dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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