跳转到主要内容

一个用于在RGB和十六进制颜色之间转换的mappyfile插件,并添加人类可读的名称

项目描述

Version Build Status

A mappyfile 插件,用于标准化和转换Mapfile中使用的颜色。功能包括

  • 在RGB和十六进制颜色之间转换

  • 将Mapfile中的所有颜色标准化为RGB或十六进制值

  • 添加人类可读的颜色名称作为注释

  • 将颜色名称添加到RGB颜色范围作为注释(目前无法对十六进制颜色范围进行操作

  • Python2和3兼容

https://raw.githubusercontent.com/geographika/mappyfile-colors/master/rainbow.png

请参阅example.maprainbow_classes.txt以生成上述图像的Mapfile。

安装

pip install mappyfile-colors

注意安装mappyfile-colors插件将自动安装以下依赖项

  • mappyfile

  • webcolors

在线演示

  • 访问http://mappyfile.geographika.net/上的在线mappyfile演示

  • 选择“彩虹颜色”地图

  • 打开“设置”,mappyfile-colors 插件设置部分允许将颜色转换为RGB和十六进制,并将颜色名称作为注释包含在Mapfile输出中

  • 点击格式按钮

用法

要使用颜色插件,导入,然后传递自定义ColorsTransformer。还可以将两个附加参数传递给mappyfile.loads函数

  • include_color_names - 设置为True以添加颜色名称作为注释(默认为False)

  • 转换类型 - 一个参数,用于在Mapfile中转换颜色,可以是导入 ConversionType 或使用整数值来设置转换

    NO_CONVERSION = 0
    TO_RGB = 1
    TO_HEX = 2

以下是一个将RGB颜色转换为HEX颜色的示例脚本,并包含颜色名称。

import mappyfile
from mappyfile.plugins import mappyfile_colors
from mappyfile_colors import ColorsTransformer, ConversionType

s = """
CLASS
    STYLE
        COLOR 184 134 11
        OUTLINECOLOR 0 0 255
        WIDTH 3
    END
END
"""

d = mappyfile.loads(s, include_color_names=True, transformer_class=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 iterator
print(next(clrs))

作者

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

mappyfile_colors-1.0.0.tar.gz (8.3 kB 查看哈希值)

上传时间 源代码

构建分发

mappyfile_colors-1.0.0-py2.py3-none-any.whl (6.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持: