zoukankan      html  css  js  c++  java
  • 生成颜色代码的 Java程序

    在网页
     http://flash.9ria.com/thread-33919-1-1.html
    找到如下代码。他可以指定 开始颜色, 结束颜色, 以及 步长,函数返回一个 java 数组,数组中包含有颜色代码。
    选择 开始颜色, 结束颜色时可以参见下面的 颜色代码表。
    http://book.wyfwgw.com/color.htm
    /**
                             * 输入一个颜色,将它拆成三个部分:
                     * 红色,绿色和蓝色
                             */
                            public static function retrieveRGBComponent( color:uint ):Array
                            {
                                    var r:Number = color >> 16;
                                    var g:Number = (color >> 8) & 0xff;
                                    var b:Number = color & 0xff;
                                    
                                    return [r, g, b];
                            }
                            
                            /**
                             * 红色,绿色和蓝色三色组合
                             */
                            public static function generateFromRGBComponent( rgb:Array ):int
                            {
                                    if( rgb == null || rgb.length != 3 || 
                                            rgb[0] < 0 || rgb[0] > 255 ||
                                            rgb[1] < 0 || rgb[1] > 255 ||
                                            rgb[2] < 0 || rgb[2] > 255 )
                                            return 0xFFFFFF;
                                    return rgb[0] << 16 | rgb[1] << 8 | rgb[2];
                            }
                            
                            /**
                             * color1是浅色,color2是深色,实现渐变
                     * steps是指在多大的区域中渐变,
                             */
                            public static function generateTransitionalColor( color1:uint, color2:uint, steps:int):Array
                            {
                                    if( steps < 3 )
                                            return [];
                                            
                                    var color1RGB:Array = retrieveRGBComponent( color1 );
                                    var color2RGB:Array = retrieveRGBComponent( color2 );
                                    
                                    var colors:Array = [];
                                    colors.push( color1 );
                                    steps = steps - 2;
                                    
                                    var redDiff:Number = color2RGB[0] - color1RGB[0];
                                    var greenDiff:Number = color2RGB[1] - color1RGB[1];
                                    var blueDiff:Number = color2RGB[2] - color1RGB[2];
                                    for( var i:int = 1; i < steps - 1; i++)
                                    {
                                            var tmpRGB:Array = [
                                                    color1RGB[0] + redDiff * i / steps,
                                                    color1RGB[1] + greenDiff * i / steps,
                                                    color1RGB[2] + blueDiff * i / steps
                                            ];
                                            colors.push( generateFromRGBComponent( tmpRGB ) );
                                    }
                                    colors.push( color2 );
                                    
                                    return colors;
                            }
    
  • 相关阅读:
    bbb SOCKET CAN
    在BBB上使用CCS5开发环境
    BBB的PRU模块
    垃圾邮件分类
    yzoj 2377 颂芬梭哈 题解
    yzoj 2372 小B的数字 题解
    yzoj P2371 爬山 题解
    hdu 1007 Quoit Design 题解
    手写堆
    yzoj P1126 塔 题解
  • 原文地址:https://www.cnblogs.com/cy163/p/1726392.html
Copyright © 2011-2022 走看看