前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >博客相关 | 如何提取图片主题色并自动选择标题字体颜色

博客相关 | 如何提取图片主题色并自动选择标题字体颜色

作者头像
Justlovesmile
发布于 2022-03-30 07:31:45
发布于 2022-03-30 07:31:45
77800
代码可运行
举报
文章被收录于专栏:云+分享云+分享
运行总次数:0
代码可运行

今天在写博客的时候,做了一个封面图,然后hexo cl && hexo g && gulp && hexo s一键生成,点开后却发现这个标题的字体颜色亮瞎我的眼睛:

于是试了很多帖子,终于把它改好了:

提取主题色的js:https://github.com/briangonzalez/rgbaster.js

处理配色js如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (document.getElementById('post-cover')) {
  const img = document.getElementById('post-cover').getAttribute('data-lazy-src')
  RGBaster.colors(img, {
      paletteSize: 30,
      exclude: ["rgb(255,255,255)", "rgb(0,0,0)", "rgb(254,254,254)"],
      success: function(t) {
        if (t.dominant != 'rgb()'){
          const c = t.dominant.match(/\d+/g);
          const Color = `rgba(${c[0]},${c[1]},${c[2]},0.8)`;
          let fontColor;
          //const grayLevel = c[0] * 0.299 + c[1] * 0.587 + c[2] * 0.114;
          const grayLevel = c[0] * 0.213 + c[1] * 0.715 + c[2] * 0.072;
          //if (grayLevel >= 190) {
          if (grayLevel >= 255/2) {
            // 若为浅色,把文字设置为黑色
            fontColor = '#000';
            metaColor = '#1C1C1C';
          } else {
            fontColor = '#fff';
            metaColor = '#eee';
          }
          document.styleSheets[0].addRule(":root", "--mj-main:" + Color + "!important")
          document.styleSheets[0].addRule(":root", "--mj-titlecolor:" + fontColor + "!important")
          document.styleSheets[0].addRule(":root", "--mj-metacolor:" + metaColor + "!important")
        } else {
          document.styleSheets[0].addRule(":root", "--mj-main: rgba(255,250,240,0.5) !important")
          document.styleSheets[0].addRule(":root", "--mj-titlecolor: #000 !important")
          document.styleSheets[0].addRule(":root", "--mj-metacolor: #1C1C1C !important")
        }
      },
      error: function() {
          document.styleSheets[0].addRule(":root", "--mj-main: rgba(255,250,240,0.5) !important")
          document.styleSheets[0].addRule(":root", "--mj-titlecolor: #000 !important")
          document.styleSheets[0].addRule(":root", "--mj-metacolor: #1C1C1C !important")
      }
  })
} else {
  document.styleSheets[0].addRule(":root", "--mj-main: transparent !important")
  document.styleSheets[0].addRule(":root", "--mj-titlecolor: var(--light-grey) !important")
}

参考:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
🥬 🐶的uniapp学习之🦌 【提取图片主题色生成背景 】
首先,这篇文章的最终的效果不是很成功。记录一下我在这个失败过程中遇到的问题和尝试过的技术。
用户4793865
2023/01/12
2.9K0
主题修改记录
在\themes\butterfly\layout\includes\header\index.pug中添加以下内容
用户1316967
2022/01/18
1K0
Hexo博客 | 如何为博客添加顶部轮播图和文章推荐卡片
最近看了zhheo大佬的博客首页,发现大佬的布局还是那么的好看,于是果断COPY,再加上我一直想要在我的博客首页加一个大画幅的轮播图插件,于是又参考了Hassan的文章轮播图…经过一番折腾,效果如下:
Justlovesmile
2022/09/02
1.3K1
Hexo博客 | 如何为博客添加顶部轮播图和文章推荐卡片
基于 Hexo 从零开始搭建个人博客(六)
2021-04-27 butterfly3.4.0 -> butterfly3.7.1
唐志远
2022/10/27
1.1K0
基于 Hexo 从零开始搭建个人博客(六)
记typecho美化(一)
在class属性中添加tiktok使用 例:<p id="heading" class="tiktok"></p>
R0A1NG
2022/02/18
5780
【积水成渊】CSS磨砂玻璃效果和渐变主题色文字
磨砂玻璃效果已经在互联网上流行了很多年,Mac OS以其磨砂玻璃效果而闻名,Windows 10也通过其他一些灯光,深度,运动,材质,比例尺实现了磨砂玻璃的效果 。
淼学派对
2023/10/14
6480
【积水成渊】CSS磨砂玻璃效果和渐变主题色文字
图片点击放大,你的网页也能做到!
发布于 2018-07-28 05:27 更新于 2018-08-12 06:52
walterlv
2018/09/18
4.2K0
图片点击放大,你的网页也能做到!
Hexo-Butterfly主题修改记录-2
添加跳动的心 首先在博客引入这个开源css \themes\butterfly\layout\includes\footer.pug,找到此段代码:
十玖八柒
2022/08/01
1.7K0
Hexo-Butterfly主题修改记录-2
hexo博客主题推荐_wordpress社交主题
备用地址: https://wang-qz.gitee.io/crystal-blog/
全栈程序员站长
2022/09/27
68.8K0
hexo博客主题推荐_wordpress社交主题
从网易云音乐的背景聊聊如何对图片主题色进行提取
就是切换歌曲时,会根据当前封面替换背景色。作为资深切图仔,我那该死的好奇心兜不住了,不行,我要去一探究竟。
前端森林
2021/07/22
1.7K0
【教程】handsome主题个性化备忘录
复制这段内容并添加在前面,handsome主题可以在 开发者设置 自定义输出body 尾部的HTML代码中添加。
听闻所见
2023/08/02
1.7K0
【教程】handsome主题个性化备忘录
Hexo博客主题优化
在 themes/*/source/css/_custom/custom.styl 中添加如下代码:
达达前端
2019/07/03
8510
Hexo博客主题优化
Handsome主题美化
Github: https://github.com/mokeyjay/Pixiv-daily-top50-widget 主题设置 - 开发者设置 - 全局右侧广告位添加以下代码
Gujiu
2022/12/02
9630
个人小站折腾后记
🧑个人简介:大家好,我是 shark-Gao,一个想要与大家共同进步的男人😉😉
程序员Leo
2023/08/08
1.2K0
个人小站折腾后记
博客前端美化记录(持续更新)
程序:Typecho 主题:Cuteen Version:4.1 作者:@Veen zhao
Y5neKO
2022/01/13
7460
博客前端美化记录(持续更新)
Hexo之Next主题美化代码
我分别美化了几个不同版本的Next主题,这里把美化代码公布出来,第一种Next版本小于7.3可使用
王瑞MVP
2022/12/28
2.1K0
Hexo博客之butterfly主题优化更换背景
在任意位置创建一个css文件,例如background.css。(简单来说,就是创建一个txt文件,把名字改为background.css即可。注意扩展名)
Dreamy.TZK
2020/05/07
5.3K1
Hexo博客之butterfly主题优化更换背景
Typecho主题Handsome修改记录---(持续更新)
usr/themes/handsome/component/footer.php删代码至如图所示
BinGo_Blog
2022/11/01
1.3K0
博客美化
本文最后更新于2022年02月10日,已超过123天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
田小檬
2022/08/30
7570
个人博客主题美化
个人博客主题美化 选择主题 Hexo默认的主题是landscape,推荐以下主题: snippet Hiero JSimple BlueLake 详见:https://github.com/searc
小小咸鱼YwY
2019/09/11
1.4K0
个人博客主题美化
相关推荐
🥬 🐶的uniapp学习之🦌 【提取图片主题色生成背景 】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档