zoukankan      html  css  js  c++  java
  • PHP随机生成昵称首字母图片

    PHP随机生成昵称首字母图片

    <?php
    
    /**
         * 首字母头像
         * @param $text
         * @return string
         */
        function letter_avatar($text)
        {
            $total = unpack('L', hash('adler32', $text, true))[1];
            $hue = $total % 360;
            list($r, $g, $b) = hsv2rgb($hue / 360, 0.3, 0.9);
    
            $bg = "rgb({$r},{$g},{$b})";
            $color = "#ffffff";
            $first = mb_strtoupper(mb_substr($text, 0, 1));
            $src = base64_encode('<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="100" width="100"><rect fill="' . $bg . '" x="0" y="0" width="100" height="100"></rect><text x="50" y="50" font-size="50" text-copy="fast" fill="' . $color . '" text-anchor="middle" text-rights="admin" alignment-baseline="central">' . $first . '</text></svg>');
    //        $value = 'data:image/svg+xml;base64,' . $src;
            $value = $src;
            return $value;
        }
    
    
     function hsv2rgb($h, $s, $v)
        {
            $r = $g = $b = 0;
    
            $i = floor($h * 6);
            $f = $h * 6 - $i;
            $p = $v * (1 - $s);
            $q = $v * (1 - $f * $s);
            $t = $v * (1 - (1 - $f) * $s);
    
            switch ($i % 6) {
                case 0:
                    $r = $v;
                    $g = $t;
                    $b = $p;
                    break;
                case 1:
                    $r = $q;
                    $g = $v;
                    $b = $p;
                    break;
                case 2:
                    $r = $p;
                    $g = $v;
                    $b = $t;
                    break;
                case 3:
                    $r = $p;
                    $g = $q;
                    $b = $v;
                    break;
                case 4:
                    $r = $t;
                    $g = $p;
                    $b = $v;
                    break;
                case 5:
                    $r = $v;
                    $g = $p;
                    $b = $q;
                    break;
            }
    
            return [
                floor($r * 255),
                floor($g * 255),
                floor($b * 255)
            ];
        }
    
  • 相关阅读:
    流式布局思想
    盒子的显隐
    高级布局 浮动 清浮动
    display总结 overflow知识
    边界圆角 盒模型布局 图片背景 精灵图
    io模型
    协程
    GIL 进程池与线程池
    守护进程 互斥锁 进程间通讯
    子进程
  • 原文地址:https://www.cnblogs.com/ccw869476711/p/13596791.html
Copyright © 2011-2022 走看看