Material Design 中 Palette 实现色彩提取及使用技巧

Material Design 中 Palette 实现色彩提取及使用技巧

本文将为读者介绍如何使用 Material Design 中的 Palette 工具,提取搭配合适、符合设计规范的颜色,帮助前端工程师提升设计水平、打造更好的用户体验。

一、Palette 工具是什么?

Palette 是 Material Design 里的一个色彩提取工具,它可以自动提取图片中的色彩并生成不同层次的颜色。

它主要使用以下两个类来实现色彩提取:

  • Palette: 所有调色板的父类。主要定义了3中颜色样式:Light Vibrant(亮色活力)、Vibrant(活力)、Dark Vibrant(暗色活力),三个样式和基本图像颜色都有显著差异。
  • Palette.Builder:Palette 调色板的构建器,用于指定图像、调色板样式等参数,最后通过 builder.generate() 方法获取到 Palette 实例。

二、Palette 工具的使用

Palette 有很多实用方法可以自定义结果,我们先看一下自定义提取样式的方法,此处以 Vibrant(活力)为例:

上述代码利用 builder 按照 Vibrant 提取样式构建了一段 Bitmap 数据,然后通过传入 Palette.AsyncListener 监听器,异步进行 Palette 实例的处理和生成。在 onGenerated 回调中,我们可以获取到颜色提取结果:

palette.getVibrantSwatch()能够获取到图像中与 Vibrant 风格匹配的调色板信息,Swatch 对象包含了颜色信息,如 RGB 值、四种 HSL 值。获取到 RGB 值可以直接使用,而 HSL 值需要适当转换以供使用。

三、Palette 工具具体方法

  1. getVibrantSwatch()

调用此方法可以获取图片中颜色最丰富的中等饱和度(40%-60%)的活力颜色。

  1. getMutedSwatch()

调用此方法可以获取图片中颜色最柔和的中等饱和度(40%-60%)的颜色。

  1. getSwatches()

从颜色信息提取的目录中,查看和获取所有的 swatch,可快速获取每个主题颜色的 Swatch 实例。

  1. getDominantSwatch()

提取图像中最显著、最占比的颜色。

除了以上方法, Palette 还有其他实用接口,例如:计算每种颜色 Swatch 实例的文字颜色是否能够放在该颜色的背景上;判断该颜色是否适合展示阴影颜色;或者使用独特的过滤器从图像中检索使用的颜色。

四、Palette 工具使用技巧

  1. 避免提取出不合适的颜色

Palette 提取出的颜色可能会因图片素材不同而差异较大,有时可能会产生不符合设计规范的颜色。为防止这种情况的发生,我们可以使用 setColorExtractor() 接口来自定义色彩提取方式,以获取满足需求的颜色信息。

  1. 对于不同场景的色彩搭配应该不同

在实际项目中,不同的场景可能需要使用不同的色彩搭配,比如主题、画面、情感等。我们可以使用 Palette 工具根据场景需要自行选择对应的颜色提取样式。

  1. 与其他调色板相结合

我们可以将从 Palette 中提取得到的颜色信息,和其他调色板库进行结合,如使用简单易用的 colorthief 库结合 Palette 实现色彩提取和渐变色展示等效果。

此例中利用 colorGradient 实现了渐变色效果,并结合 Palette 的 Vibrant 和 Muted 获取对应颜色。

五、总结

Palette 工具是 Material Design 的一个非常有用的功能,通过调用 Palette API,可以快速轻松的实现图片色彩的提取和调色板的生成。使用 Palette 工具不仅可以让你获得更加优美的配色方案,还可以提高项目开发效率。

本文简要介绍了 Palette 工具调用方式,提供了一些实用技巧和配套使用建议,希望能够为前端工程师提供参考和指导,打造优美的用户体验。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654364b17d4982a6ebd20c4a


纠错
反馈