ゞ情非得已Sky 发表于 2023-11-3 16:24:57

安卓最强算法-根据不同图片可以调整不同字体颜色



<火山程序 类型 = "通常" 版本 = 1 />

方法 调整颜色的亮度 <公开 类型 = 整数 折叠>
参数 red <类型 = 整数 注释 = "红">
参数 green <类型 = 整数 注释 = "绿">
参数 blue <类型 = 整数 注释 = "蓝">
{
    // 计算新的亮度值
    @ double brightness = 0.299 * @<red> + 0.587 * @<green> + 0.114 * @<blue>;
    // 根据调整因子调整亮度
    // @ brightness += @<adjustmentFactor> * 255;
    @ double adjustmentFactor = brightness >= 128 ? -0.2 : 0.2;
    // 确保亮度值在合法范围内
    @ brightness = Math.max(0, Math.min(255, brightness));
    变量 adjustmentFactor2 <类型 = 小数 注释 = "// 调整因子可根据需要进行调整">
    @ @<adjustmentFactor2>=adjustmentFactor;
    red = adjustChannelBrightness (red, adjustmentFactor2)
    green = adjustChannelBrightness (green, adjustmentFactor2)
    blue = adjustChannelBrightness (blue, adjustmentFactor2)
    // 调整字体颜色以确保可见性
    @ if (brightness < 128) {
    @@<red> = 255 - @<red>;
    @@<green> = 255 - @<green>;
    @@<blue> = 255 - @<blue>;
    @}
    // 确保通道值在合法范围内
    @ @<red> = Math.max(0, Math.min(255, @<red>));
    @ @<green> = Math.max(0, Math.min(255, @<green>));
    @ @<blue> = Math.max(0, Math.min(255,@<blue>));
    返回 (颜色类.RGB到颜色值 (red, green, blue))
}

方法 adjustChannelBrightness <公开 类型 = 整数 折叠 @禁止流程检查 = 真>
参数 channelValue <类型 = 整数>
参数 adjustmentFactor <类型 = 小数>
{
    @ int adjustedValue = (int) (@<channelValue> + @<adjustmentFactor> * 255);
    @ return Math.max(0, Math.min(255, adjustedValue));

}


页: [1]
查看完整版本: 安卓最强算法-根据不同图片可以调整不同字体颜色