一个mappyfile插件,用于在rgb和hex颜色之间转换,并添加人类可读的名称
mappyfile-colors的Python项目详细描述
一个mappyfile插件,用于标准化和转换映射文件中使用的颜色。 功能包括:
- RGB和十六进制颜色之间的转换
- 将映射文件中的所有颜色与rgb或hex值协调
- 添加human readable color名称作为注释
- 将颜色名称作为注释添加到rgb颜色范围(当前无法用于十六进制颜色范围)
- python2和3兼容
请参见example.map和rainbow_classes.txt,以获取生成上述图像的映射文件。
安装
pip install mappyfile-colors
注意:安装mappyfile-colors插件将自动安装以下内容 依赖关系:
- 映射文件
- 网络颜色
在线演示
- 转到http://mappyfile.geographika.net/
- 选择“彩虹颜色”地图
- 打开“设置”,允许将mappyfile colors plugin settings部分转换为rgb和hex,并包括 将颜色名称作为映射文件输出中的注释
- 单击“格式”按钮
用法
要使用颜色插件,请导入,然后传入自定义的ColorsTransformer。 还可以将两个附加参数传递给mappyfile.loads函数:
include_color_names-设置为true可将颜色名称添加为注释(默认为false)
conversion_type-在映射文件中转换颜色的参数,可以导入ConversionType或使用整数值 设置转换:
NO_CONVERSION=0TO_RGB=1TO_HEX=2
将rgb转换为十六进制颜色并包含颜色名称的示例脚本如下所示。
importmappyfilefrommappyfile.pluginsimportmappyfile_colorsfrommappyfile_colorsimportColorsTransformer,ConversionTypes=""" CLASS STYLE COLOR 184 134 11 OUTLINECOLOR 0 0 255 WIDTH 3 END END """d=mappyfile.loads(s,include_color_names=True,transformerClass=ColorsTransformer,conversion_type=ConversionType.TO_HEX)print(mappyfile.dumps(d))
这将输出以下内容:
CLASS STYLE COLOR"#b8860b" # darkgoldenrod OUTLINECOLOR "#0000ff" # blue WIDTH 3 END END
有关更多示例,请参见test_plugin.py。
彩色工厂
该插件还包含一个ColorFactory类,用于从调色板返回唯一颜色这对你有用。 基于唯一值生成MapServer类。基本用法如下所示:
color_factory=mappyfile_colors.ColorFactory()print(color_factory.palette_names)clrs=color_factory.get_colors(palette_name="maximum_contrast")# returns an iteratorprint(next(clrs))