火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 820|回复: 0
打印 上一主题 下一主题

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

[复制链接]

92

主题

390

帖子

2010

积分

金牌会员

Rank: 6Rank: 6

积分
2010
跳转到指定楼层
楼主
发表于 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));

}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-2 09:51 , Processed in 0.085372 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表