5个版本
0.1.6 | 2023年2月15日 |
---|---|
0.1.5 | 2023年2月15日 |
#262 在 图像
每月28次下载
24KB
334 代码行
🎨 欢迎来到Color Buddy 🎨
Color Buddy是一个命令行工具,可以从图像中生成调色板。
内容
安装
cargo install colorbuddy
用法
colorbuddy --help
生成以下输出
Generates a color palette based on an image.
Usage: colorbuddy [OPTIONS] <IMAGE>
Arguments:
<IMAGE>
Options:
-m, --quantisation-method <QUANTISATION_METHOD>
[default: k-means] [possible values: median-cut, k-means]
-n, --number-of-colors <NUMBER_OF_COLORS>
[default: 8]
-o, --output <OUTPUT>
-t, --output-type <OUTPUT_TYPE>
[default: original-image] [possible values: json, original-image, standalone-palette]
-p, --palette-height <PALETTE_HEIGHT>
[default: 256]
-w, --palette-width <PALETTE_WIDTH>
-h, --help
Print help information
-V, --version
Print version information
示例
默认选项将导致
- 输出原始图像的副本,底部带有
- 8色调色板
- 高度为256px
- 使用k-means聚类计算得出
生成包含图像中8种最常见颜色的JSON
colorbuddy --output-type json original-image.jpg
输出带有底部5种最常见颜色的原始图像
colorbuddy --number-of-colors 5 --output-type original-image.jpg another-image.jpg
指定调色板的高度为原始图像高度的百分比
colorbuddy --palette-height 20% original-image.jpg
指定宽度、高度和独立调色板输出高度以创建独立调色板图像
colorbuddy --palette-height 50px --palette-width 500 original-image.jpg
常见问题解答
问题:什么是Median Cut Quantisation?
Median Cut quantization是图像处理中用于减少图像中颜色数量的方法。目标是使用更小的调色板来表示原始图像,同时尽可能保留视觉信息。
可以这样想:想象你有一盒蜡笔,你想减少蜡笔的数量,同时仍然能够画图。Median Cut quantization方法将帮助你选择一个更小的蜡笔集合,代表你图片中使用的颜色范围,这样你仍然可以画出一个看起来与原始图片相似的图片。
在Median Cut quantization中,第一步是将图像的颜色空间划分为更小的部分。这是通过在每一部分中找到中点颜色值并将其基于此中点值分为两部分来完成的。这个过程重复进行,直到你达到调色板中所需的颜色数量。
问题:什么是“k-means聚类”?
K-means聚类是一种机器学习技术,用于根据数据点之间的相似性将数据分组为“簇”。
可以这样想象:假设你有一堆不同颜色的球,你想要根据它们的颜色将它们分到几个不同的篮子里。K均值聚类是一种让计算机自动将球分到篮子里,使得每个篮子里都装着颜色相似的球的方法。
在K均值聚类中,“K”指的是你想要创建的篮子的数量。所以,你可以选择创建2个、3个,甚至10个篮子,这取决于你想要创建多少组。
问:两种量化方法之间的区别是什么?
或者:“我应该何时使用一种方法而不是另一种?”
K均值聚类会产生图像中最常见的颜色调色板,而中值切割量化会产生代表性颜色的调色板。
尝试一下,看看哪种方法最适合你的应用!
帮助
这是一个个人、免费、开源的项目。如果你遇到错误或其他问题,需要帮助或添加一些新功能,请随时在GitHub上提出问题。我将尽力在相对及时地回应,但不提供任何保证。
路线图
- 允许用户生成独立的调色板图像
- 允许用户生成用于其图形工具/应用的调色板信息
-
允许用户指定多个图像以应用相同的选项 -
允许用户指定输出文件/目录 -
添加测试
作者
👨 Adam Henley (他/他)
- 网站:https://adamhenley.com
- 推特:@adamofgreyskull
- GitHub:@adamazing
- 领英:@adamhenley
显示您的支持
如果这个项目对你有帮助,请给个⭐️!
依赖项
~16MB
~97K SLoC