Bagaimana untuk menukar rgb kepada heksadesimal dalam php

藏色散人
Lepaskan: 2023-03-13 21:38:01
asal
2025 orang telah melayarinya

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;
}
Salin selepas log masuk

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;
  }
Salin selepas log masuk

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;
  }
Salin selepas log masuk

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!

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan