Project Icon

fettepalette

像素艺术启发的智能调色板生成器

FettePalette是一个开源的调色板生成工具,采用HSV色彩模型和像素艺术的色彩理念。它利用曲线和色相偏移技术创建多样化的色彩组合。工具提供色相循环、曲线方法和饱和度范围等参数设置,支持自定义生成过程。FettePalette适用于数字艺术、UI设计等领域,可以快速生成协调的色彩方案。

fette palette

介绍FettePalette — 一款受像素艺术和插画世界启发的色彩调色板生成器。通过在HSV色彩模型中使用曲线和色相偏移,该函数可创建美丽而独特的色彩调色板。查看演示和文档,今天就提升您的生成式色彩水平!

安装

FettePalette在npm上以UMD和ES模块形式打包。使用npm安装:

npm install fettepalette

然后您可以将FettePalette导入到您的项目中:

// CJS风格
let generateRandomColorRamp = require("fettepalette");

// ES风格:导入单个方法
import { generateRandomColorRamp } from "fettepalette";

使用

import { generateRandomColorRamp } from 'fettepalette';

function generateRandomColorRamp  ({
  total:                10,    // 渐变中基础颜色的总数

  centerHue:            180,   // 生成从哪个色相开始

  hueCycle:             0.3,   // hsl旋转,色相在曲线上应该变化多少
                               // 0:完全不变,1:完整的彩虹

  offsetTint:           0.1,   // 浅色偏移量

  offsetShade:          0.1,   // 深色偏移量

  curveMethod:         'arc',  // 在HSV色彩模型中绘制曲线的方法
                               // 也可以接受一个函数

  curveAccent:          0,     // 曲线的强调程度
                               // (主要取决于curveMethod)

  tintShadeHueShift:    0.1,   // 定义深色和浅色的色相偏移程度

  offsetCurveModTint:  0.03,   // 修改浅色曲线

  offsetCurveModShade: 0.03,   // 修改深色曲线

  minSaturationLight:  [0, 0], // 定义所有颜色的最小饱和度和亮度

  maxSaturationLight:  [1, 1], // 定义所有颜色的最大饱和度和亮度
  
  colorModel:          'hsl',  // 定义返回颜色的色彩模型
                               // 支持hsv和hsl
});

generateRandomColorRamp(Options{})

函数返回一个包含4个数组的对象:

{
    light: [], // 浅色
    dark: [], // 深色
    base: [], // 中间色
    all: [], // 所有颜色
 }

每个数组包含以HSL坐标表示的颜色 [h,s,l/b] [0…360,0…1,0…1]

选项

  • total 整数 3… → 基础颜色数量。
  • centerHue 浮点数 0…1 → 0 红色,180 青色等。
  • hueCycle 浮点数 0…1 → 颜色在曲线上变化的程度 0:完全不变,1:完整彩虹
  • offsetTint 浮点数 0…1 → 浅色曲线差异
  • offsetShade 浮点数 0…1 → 深色曲线差异
  • curveAccent 浮点数 0…1 → 曲线应该多突出,很大程度上取决于曲线方法
  • tintShadeHueShift 浮点数 0…1 → 深色和浅色的色相偏移
  • curveMethod 字符串 'lamé'|'arc'|'pow'|'powY'|'powX' → 用于生成曲线的方法。也可以接受一个函数 (Number(0…1)) => [x,y]
  • offsetCurveModTint 浮点数 0…1 → 增强浅色的curveAccent
  • offsetCurveModShade 浮点数 0…1 → 增强深色的curveAccent
  • minSaturationLight 数组 [0…1, 0…1] → 生成颜色的最小饱和度和亮度
  • maxSaturationLight 数组 [0…1, 0…1] → 生成颜色的最大饱和度和亮度
  • colorModel 字符串 'hsl'|'hsv' → 定义返回颜色的色彩模型 hsv可能更容易转换为其他格式。

安全选项

为了便于与您喜欢的设置面板(如dat.gui、tweakpane等)集成,该脚本导出了generateRandomColorRampParams,这是一个包含默认和安全选项的对象,可用于主函数。

{
  曲线方法: {
    默认值: 'lamé',
    属性: { 选项: [
      'lamé', '弧线', '幂函数', 'Y轴幂函数', 'X轴幂函数',
      // 或 +/- 标准缓动函数 
      '线性', '正弦缓入', '正弦缓出', '正弦缓入缓出', '二次方缓入', '二次方缓出', '二次方缓入缓出', '三次方缓入', '三次方缓出', '三次方缓入缓出', '四次方缓入', '四次方缓出', '四次方缓入缓出', '五次方缓入', '五次方缓出', '五次方缓入缓出', '指数缓入', '指数缓出', '指数缓入缓出', '圆形缓入', '圆形缓出', '圆形缓入缓出', '随机'
    ] },
  },
  曲线强调: {
    默认值: 0,
    属性: { 最小值: -0.095, 最大值: 1, 步长: 0.001 },
  },
  总数: {
    默认值: 9,
    属性: { 最小值: 3, 最大值: 35, 步长: 1 },
  },
  中心色相: {
    默认值: 0,
    属性: { 最小值: 0, 最大值: 360, 步长: 0.1 },
  },
  色相循环: {
    默认值: 0.3,
    属性: { 最小值: -1.5, 最大值: 1.5, 步长: 0.001 },
  },
  色调偏移: {
    默认值: 0.01,
    属性: { 最小值: 0, 最大值: 0.4, 步长: 0.001 },
  },
  阴影偏移: {
    默认值: 0.01,
    属性: { 最小值: 0, 最大值: 0.4, 步长: 0.001 },
  },
  色调阴影色相偏移: {
    默认值: 0.01,
    属性: { 最小值: 0, 最大值: 1, 步长: 0.001 },
  },
  色调曲线修改偏移: {
    默认值: 0.03,
    属性: { 最小值: 0, 最大值: 0.4, 步长: 0.0001  },
  },
  阴影曲线修改偏移: {
    默认值: 0.03,
    属性: { 最小值: 0, 最大值: 0.4, 步长: 0.0001  },
  },
  最小饱和度: {
    默认值: 0,
    属性: { 最小值: 0, 最大值: 1, 步长: 0.001  },
  },
  最小亮度: {
    默认值: 0,
    属性: { 最小值: 0, 最大值: 1, 步长: 0.001  },
  },
  最大饱和度: {
    默认值: 1,
    属性: { 最小值: 0, 最大值: 1, 步长: 0.001  },
  },
  最大亮度: {
    默认值: 1,
    属性: { 最小值: 0, 最大值: 1, 步长: 0.001  },
  },
}

tweakpane 集成

import { generateRandomColorRampParams } from "fettepalette";

const PARAMS = {};

Object.keys(generateRandomColorRampParams).forEach((key) => {
  const param = generateRandomColorRampParams[key];
  PARAMS[key] = param.default;
  pane.addInput(PARAMS, key, param.props);
});

阅读和灵感来源

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号