Solitude开发记:文章img2color取色实现
文章摘要
iCat GPT
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
Solitude主题起初只写了基于Canvas的本地取色
功能。因为用的是平均色,所以取色的值并不准确,并且在少数床图的使用下,还是会有些问题出现。
MeuiCat3.3.0版本中就借鉴了Heo博客采用的文章封面图片主题色,而Heo实现的方式是由床图提供的纯色API来实现。具体实现可参照:生成封面图片主色来作为文章封面顶图。
在一些自有床图或者是根目录资源下,则需要通过别的方式来进行处理图片的主题色获取。img2color
则是一个获取图片主色调的API项目,使用的是Go语言,具有较高的性能,并支持自建以及Vercel部署。
img2color
在img2color
项目中,支持配置Redis或Mongodb数据库存缓。
在Solitude主题中,img2color未配置数据库存缓,可将取色功能设置为api
模式。请求后的值将进行本地缓存。默认缓存时间为:12小时。
引用站外链接
api.js | Hexo-theme-solitude
✨ new:文章封面api取色
此功能的实现为,先检查本地存储是否缓存有并未过期(12小时)的值,如果没有则使用img2color函数进行取色。
实现较为简单,获取本地存储,再到存储。
img2color-Redis
而如若img2color
配置了数据库进行存储数据,则可在Solitude主题中,将取色功能设置为api_redis
模式。
引用站外链接
api_redis.js | Hexo-theme-solitude
✨ new:文章封面api取色
在此功能模式下,将不会使用到本地存储。将直接进行img2color函数进行响应,API将自行检索数据库是否有对应的存缓。
取色三合一
在本地调试时,有些时候会用到本地图片进行调试。本地图片不属于线上资源,在取色模式选择了api
或api_redis
时,API则会进行报错。
解决方法其实也可以很简单,使用笨方法。在本地调试时,将localhost的资源转用本地取色功能即可。
在某些程度上,也可以减少代码体量。一举两得。
引用站外链接
covercolor.js | Hexo-theme-solitude
✨ new:文章封面api取色
贡献
引用站外链接
Hexo-theme-solitude | GitHub
✨ new:文章封面api取色
- 感谢您的赞赏。
赞赏名单
因为有你们的支持,我才体会到写文章的价值。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自亦小封
评论 ()