A mappyfile plugin to convert between RGB and Hex colors, and to add human readable names
Project description
A mappyfile plugin to standardise and convert colors used in a Mapfile. Features include:
- conversion between RGB and HEX colors
- harmonise all colors in a Mapfile to either RGB or hex values
- add human readable color names as comments
- add color names to RGB color ranges as comments (not currently possible for HEX color ranges)
- Python2 and 3 compatible
See example.map and rainbow_classes.txt for the Mapfile to generate the above image.
Installation
pip install mappyfile-colors
Note installing the mappyfile-colors plugin will automatically install the following dependencies:
- mappyfile
- webcolors
Online Demo
- Go to the online mappyfile demo at http://mappyfile.geographika.net/
- Select the “Rainbow colors” map
- Open “Settings”, the mappyfile-colors Plugin Settings section allows conversion to RGB and HEX, and to include color names as comments in the Mapfile output
- Click the Format button
Usage
To use the colors plugin, import, and then pass in a custom ColorsTransformer. Two additional parameters can also be passed to the mappyfile.loads function:
include_color_names - set to True to add color names as comments (default is False)
conversion_type - a parameter to convert colors within a Mapfile, either import ConversionType or use an integer value to set the conversion:
NO_CONVERSION = 0 TO_RGB = 1 TO_HEX = 2
A sample script to convert RGB to HEX colors, and include the color names is shown below.
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, transformerClass=ColorsTransformer, conversion_type=ConversionType.TO_HEX) print(mappyfile.dumps(d))
This will output the following:
CLASS STYLE COLOR "#b8860b" # darkgoldenrod OUTLINECOLOR "#0000ff" # blue WIDTH 3 END END
See the test_plugin.py for further examples.
Color Factory
The plugin also includes a ColorFactory class to return unique colors from color palettes. This can be useful for generating MapServer classes based on unique values. Basic usage is shown below:
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))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mappyfile_colors-0.4.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7c32c183c32ff908e9b88cb1e874f5b33501098bf8abbd11135348d1a630716 |
|
MD5 | f9c5ba8d909fadb54637e41e8a9ed72a |
|
BLAKE2-256 | c93402dca62586c3f44e4d1aa57335523f01f02a84bc6847e2c4bcc06611f0b8 |