dongyan5239 2012-03-16 04:32
浏览 139
已采纳

使用PHP生成颜色数组

Is it possible to create an array of colors with PHP?

What I'm trying to do:

  1. Select a start and end color
  2. Choose an amount of "steps"
  3. Create an array of those colors blending together (as a gradient) with that amount of steps.

Example:

Start color: White
End color: Black
Steps: 3

Result:

  1. "white",
  2. "gray",
  3. "black"

Of course the colors would be in RGB/hex

Anyone with a solution on this?

  • 写回答

5条回答 默认 最新

  • dqnhfbc3738 2012-03-16 04:47
    关注
     $greys=rainbow('000000','FFFFFF',3);
    
     function rainbow($start, $end, $steps)
     {
        $s=str_to_rgb($start);
        $e=str_to_rgb($end);
        $out=array();
        $r=(integer)($e['r'] - $s['r'])/$steps;
        $g=(integer)($e['g'] - $s['g'])/$steps;
        $b=(integer)($e['b'] - $s['b'])/$steps;
        for ($x=0; $x<$steps; $x++) {
           $out[]=rgb_to_str(
              $s['r']+(integer)($r * $x),
              $s['g']+(integer)($g * $x),
              $s['b']+(integer)($b * $x));
        }
        return $out;
     }
     function rgb_to_str($r, $g, $b)
     {
          return str_pad($r, 2, '0', STR_PAD_LEFT)
              .str_pad($g, 2, '0', STR_PAD_LEFT)
              .str_pad($b, 2, '0', STR_PAD_LEFT);
     }
     function str_to_rgb($str)
     {
        return array (
          'r'=>hexdec(substr($str, 0, 2)),
          'g'=>hexdec(substr($str, 3, 2)),
          'b'=>hexdec(substr($str, 5, 2))
        );
     }
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥15 没输出运行不了什么问题
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部