hurtak/phpautocolor

简单的PHP类,用于自动使用视觉上独特的颜色进行着色

v1.2.4 2014-10-30 11:33 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:22:48 UTC


README

简单的PHP类,用于自动使用视觉上独特的颜色进行着色。

1. 使用场景

  • 通过用户名或用户ID在聊天中着色人们的消息
  • 通过用户ID或用户名在管理员仪表板上着色最新用户操作的列表

2. 特点

  • 使用CIEDE2000算法生成的最视觉上独特的颜色进行聪明的颜色选择
  • 可以设置返回颜色的最大和最小亮度
  • 快速且轻量级
  • 大量的自定义选项
  • 内置错误消息的简单调试

3. 使用方法

2.1 安装
    git clone https://github.com/Hurtak/PHPAutoColor.git

或者您可以使用 Composer

    composer require hurtak/phpautocolor:@dev
2.2 基本设置
    include "PHPAutoColor/src/PHPAutoColor.php";
    $color = new PHPAutoColor();
2.3 设置(可选)
  • 自定义 PHPAutoColor 设置 或不进行任何操作,将使用默认设置
2.4 发送用户ID或用户名,将返回颜色
  • 接受整数、带小数的数字和字符串(区分大小写)
    $color->getColor($userID); // returns "#000"

4. 代码示例

    <?php

    // data from DB
    $sql = $pdo->prepare("SELECT * FROM actions");
    $sql->execute();
    $userActions = $sql->fetchAll();
   
    // initial setup
    include "PHPAutoColor.php";
    $color = new PHPAutoColor();

    // PHPAutoColor settings (optional)
    $color->setColorType("rgb");
    $color->setColorPickingMethod("dynamic");
    $color->setLightnessLimit("min", 0.3);

    ?>
   
    <table>
   
        <tr>
            <td>id</td>
            <td>user_id</td>
            <td>amount</td>
            <td>date</td>
        </tr>

        <?php foreach ($userActions as $action): ?>
        <tr style="background-color: <?= $color->getColor($action['user_id']) ?>">
            <td><?= $action["id"] ?></td>
            <td><?= $action["user_id"] ?></td>
            <td><?= $action["amount"] ?></td>
            <td><?= $action["date"] ?></td>
        </tr>
        <?php endforeach ?>

    </table>

5. 设置

5.1 getColor($input, $opacity = 1)
  • 返回十六进制格式的颜色字符串(可以更改,见 第5.3节
  • 出错时返回空字符串(要显示错误列表,请启用调试,见 第5.6节
5.2 setColorPickingMethod($colorPickingMethod)
  • 指定在调用 getColor() 时将使用哪种颜色选择方法
  • 此设置是可选的,如果您不调用此函数,则将使用默认值
5.3 setColorType($colorType)
  • 指定在调用 getColor() 后颜色将以何种格式返回
  • 此设置是可选的,如果您不调用此函数,则将使用默认值
5.4 setLightnessLimit($type, $lightness)
  • 限制返回的颜色感知亮度的最大或最小值,在调用 getColor() 后将返回。例如,如果您有白色背景,那么您不希望 getColor() 返回白色和其他非常明亮的颜色,因此您使用 setLightnessLimit("max", 0.8)
  • 如果需要同时设置 "max" 和 "min" 限制,则可以调用 setLightnessLimit() 两次(最大和最小亮度的差异必须大于或等于 0.2)
  • 此设置是可选的,如果您不调用此函数,则将使用默认值
5.5 setMaximumColors($maximumColors)
  • 限制 PHPAutoColor 将使用的颜色数量。
  • 如果 PHPAutoColor 的一个实例中使用的颜色列表达到 $maximumColors 限制,我们将开始重新使用先前分配的颜色
  • 此设置是可选的,如果您不调用此函数,则不会限制使用的颜色数量
5.6 enableDebugging()
  • 启用显示检测到的错误
  • 如果发生错误,getColor() 方法将返回空字符串
  • 此设置是可选的,如果您不调用此函数,则调试窗口不会出现

6. 预生成颜色列表

  • 使用 CIEDE2000 算法生成的 65 种视觉上最独特的颜色列表
  • 如果您使用 setColorPickingMethod() 与 "static"(默认)、"dynamic" 或 "dynamic-random" 参数一起使用,则将使用此列表中的颜色