zoukankan      html  css  js  c++  java
  • ArcObject开发中颜色的处理

    首先给大家介绍一个网站ColorBrewer,我们在制作专题图时,都要根据地图的内容来选择合适的颜色主题,比如,表现降水的多采用蓝色,表现高温多采用红色,表现沙尘多采用黄色。然后根据等级来分出不同的色阶。ColorBrewer为我们提供了一个很好的参考,你可以选择等级的数量,此网站默认的是不能大于10个级别,然后选择一个主色调。接下来它会为你生成每个等级的颜色值,并可以转换成各种格式。


    其实这个功能我们可以通过AO中的IAlgorithmicColorRamp来实现,并且不会有等级多少的限制,用法就是传递给它起始和结束的颜色,然后通过CreateRamp就可以生成其间渐变的各个颜色值。

    示例的代码在此下载

    在编写这段代码的过程中我遇到了这样的问题,AO生成的IColor对象,不能直接转换成.net提供的Color对象。这样就需要我们手工来完成提取IColor的R,G,B颜色,然后初始化一个Color对象。其中提取R,G,B的值用到了按位运算。

    int R = color.RGB & 0xff;
    int G = (color.RGB & 0xff00/ 0x100;
    int B = (color.RGB & 0xff0000/ 0x10000;

    试验的结果转换的Color对象颜色是正确的,而直接通过FromArgb(color.RGB)得到的是错误的,尽管FromArgb接受一个32bit的颜色参数值。

    希望能帮大家少走弯路。
  • 相关阅读:
    appium 方法整理
    appium_获取元素状态
    Locust性能测试_参数关联
    Locust性能测试-参数化批量注册
    pytest_命令行传参
    pytest_函数传参和firture传参数request
    pytest_用例a失败,跳过测试用例b和c并标记失败xfail
    pytest_skip跳过用例
    pytest_使用自定义标记mark
    算法:迷宫问题
  • 原文地址:https://www.cnblogs.com/renji/p/ColorRamp.html
Copyright © 2011-2022 走看看