精华内容
下载资源
问答
  • Palette

    2017-09-04 15:30:55
    Palette
    Palette顾名思义调色板, Palette的作用是可以从图像中提取图片的颜色。我们可以把提取的颜色融入到App UI中,可以使UI风格更加美观融洽。有些时候Palette显得非常好用,比如我们可以提取到的突出的色值设置为Toolbar,标题,状态栏的颜色等,可以使我们的整个界面色调统一,效果非常好看。

    添加依赖:
    compile 'com.android.support:palette-v7:25.3.1'

    获取图片bitmap
    Resources res = getResources();
    Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_zc_banner2);

    获的图片的Palette对象
    Palette.Builder builder = Palette.from(bitmap);

    由于解析图片可能是比较耗时的操,所以需要在非UI线程中操作 Palette提供了PaletteAsyncListener,只需要在onGenerated()中直接使用获取到的对象即可
    Palette提供了6种方法获取对应颜色的Swatch对象 然后使用Swatch的相关方法就可以获取到相应的颜色值
    Palette.PaletteAsyncListener listener = new Palette.PaletteAsyncListener() {
        public void onGenerated(Palette palette) {
            // 使用Palette对象,获取解析出的颜色
            Palette.Swatch s1 = palette.getVibrantSwatch();       //获取到充满活力的这种色调
            Palette.Swatch s2 = palette.getDarkVibrantSwatch();    //获取充满活力的黑
            Palette.Swatch s3 = palette.getLightVibrantSwatch();   //获取充满活力的亮
            Palette.Swatch s4 = palette.getMutedSwatch();           //获取柔和的色调
            Palette.Swatch s5 = palette.getDarkMutedSwatch();      //获取柔和的黑
            Palette.Swatch s6 = palette.getLightMutedSwatch();    //获取柔和的亮
            TextView tv1 = (TextView) findViewById(R.id.view1);
            TextView tv2 = (TextView) findViewById(R.id.view2);
            TextView tv3 = (TextView) findViewById(R.id.view3);
            TextView tv4 = (TextView) findViewById(R.id.view4);
            TextView tv5 = (TextView) findViewById(R.id.view5);
            TextView tv6 = (TextView) findViewById(R.id.view6);
            if (null != s1) {
                tv1.setBackgroundColor(s1.getRgb());
                tv1.setText("充满活力的色调");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
            if (null != s2) {
                tv2.setBackgroundColor(s2.getRgb());
                tv2.setText("充满活力的黑");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
            if (null != s3) {
                tv3.setBackgroundColor(s3.getRgb());
                tv3.setText("充满活力的亮");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
            if (null != s4) {
                tv4.setBackgroundColor(s4.getRgb());
                tv4.setText("柔和的色调");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
            if (null != s5) {
                tv5.setBackgroundColor(s5.getRgb());
                tv5.setText("柔和的黑");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
            if (null != s6) {
                tv6.setBackgroundColor(s6.getRgb());
                tv6.setText("柔和的亮");
            } else {
                tv5.setText("没有获取到颜色对象");
            }
    
    
        }
    };

    添加监听事件

    builder.generate(listener);

    Swatch还提供了其他方法获取对应的颜色值

    getPopulation(): 像素的数量
    getRgb(): RGB颜色
    getHsl(): HSL颜色
    getBodyTextColor(): 用于内容正文文本的颜色
    getTitleTextColor(): 标题文本的颜色
    Palette只为六种主颜色种类Swatch提供了getter,如果你要使用其他颜色种类的Swatch(一共有16种颜色种类),你需要手动获取它。调用getSwatchs()会返回一个列表,里面有所有获取到的Swatch。

    List<Palette.Swatch> swatches = palette.getSwatches();
    源码地址:https://github.com/gaojiangmin/Palette


    展开全文
  • palette字体

    2021-07-29 18:09:51
    palette字体是一款适用于广告设计方面的字体
  • palette svg

    2019-02-17 01:12:04
    palette svg 字体图标用的多,大家下载用用,蛮好看的
  • PaletteDemo

    2015-11-23 18:09:16
    一个使用palette的小Demo,欢迎访问我的博客看具体的使用方式
  • Palettedemo

    2016-05-01 12:03:49
    文章《android 5.x—Palette》http://blog.csdn.net/peak1chen/article/details/51289687提供的下载链接
  • 调色板器::artist_palette::artist_palette::artist_palette:在单个R包中收集大多数调色板
  • palette1-源码

    2021-03-26 07:34:20
    palette1
  • Palette error

    2020-12-09 13:09:07
    palette, so I changed it. I have checked multiple times, and they all match up with the palette, and I still get an error! The Sprite doesn't use all of the colors in ness' Sprite, if that ...
  • 调色板-iOS 就像iOS的 。 用Swift编写并与Objective-C兼容从任何视图(继承UIView的任何视图)中,到另一个视图的特定点都会获得对比色(黑色或白色)。... Palette * palette = [[Palette alloc] initWithBackgr
  • Palette详解

    千次阅读 2018-04-24 16:19:22
    直接讲解Palette的使用步骤和实例,补充说明Palette的几个注意点。 转载请注明链接:https://blog.csdn.net/feather_wch/article/details/80066384 Palette详解 版本:2018/4/24-1 Palette详解 注意点 参考...

    直接讲解Palette的使用步骤和实例,补充说明Palette的几个注意点。
    转载请注明链接:https://blog.csdn.net/feather_wch/article/details/80066384

    Palette详解

    版本:2018/4/24-1

    1、Palette是什么?

    1. Palette是一个可以从图片(Bitmap)中提取颜色的帮助类.
    2. 可以使UI更加美观,根据图片动态的显示相应的颜色。
      效果图
      DEMO

    2、Palette的使用步骤

    1、引入依赖包implementation 'com.android.support:palette-v7:26.1.0'
    2、获取调色板对象

    // 同步
    Palette p = Palette.from(bitmap).generate();
    
    // 异步
    Palette.from(bitmap).generate(new PaletteAsyncListener() {
        public void onGenerated(Palette p) {
            // Use generated instance
        }
    });

    3、根据调色板获取色样(Palette.Swatch可能为null)

    //有活力的
    Palette.Swatch vibrant = palette.getVibrantSwatch();
    //有活力的,暗色
    Palette.Swatch vibrantDark = palette.getDarkVibrantSwatch();
    //有活力的,亮色
    Palette.Swatch vibrantLight = palette.getLightVibrantSwatch();
    
    //柔和的
    Palette.Swatch muted = palette.getMutedSwatch();
    //柔和的,暗色
    Palette.Swatch mutedDark = palette.getDarkMutedSwatch();
    //柔和的,亮色
    Palette.Swatch mutedLight = palette.getLightMutedSwatch();

    4、色样中获取颜色

    //1、样本中的像素数量
    int population = vibrant.getPopulation();
    //2、颜色的RBG值
    int rgb = vibrant.getRgb();
    //3、颜色的HSL值
    float[] hsl = vibrant.getHsl();
    //4、主体文字的颜色值
    int bodyTextColor = vibrant.getBodyTextColor();
    //5、标题文字的颜色值
    int titleTextColor = vibrant.getTitleTextColor();

    3、Palette的简单实例(利用Glide获取Bitmap并且获取到Palette)

    //获取图片的Bitmap
    RequestBuilder<Bitmap> requestBuilder = Glide.with(getApplicationContext()).asBitmap();
    
    requestBuilder.load(datas.get(mPosition).getHeadImg()).into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(@NonNull Bitmap bitmap, @Nullable Transition<? super Bitmap> transition) {
    
            //创建Palette(异步)
            Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
                @Override
                public void onGenerated(Palette palette) {
                    //1-获取 靓丽的活力色
                    Palette.Swatch vibrant = palette.getVibrantSwatch();
                    //2-不存在活力色,获取柔和色
                    if(vibrant == null){
                        vibrant = palette.getDarkMutedSwatch();
                    }
                    //3-设置颜色
                    if(vibrant != null){
                        int titleColor = vibrant.getRgb();
                        mCollapsingToolbarLayout.setContentScrimColor(titleColor);
                        mCollapsingToolbarLayout.setCollapsedTitleTextColor(vibrant.getBodyTextColor());
                    }
                }
            });
    
        }
    });

    注意点

    1、Palette.Swatch获取为Null的解决办法

    1. 柔和色getLightMutedSwatch()基本上不会为NULL
    2. 活力色getLightVibrantSwatch()相关API对于部分图片可能为NULL
    3. 可以参考上面实例,先获取活力色如果没有,则去获取柔和色。确保最大概率获取到颜色

    2、颜色的选取

    1. 建议活力色使用一般色:getVibrantSwatch(不是亮色也不是深色),并且标题颜色采用getBodyTextColor,一般为白色比较美观。
    2. 建议柔和色采用深色:getDarkMutedSwatch,并且标题颜色使用getBodyTextColor,一般也是白色.

    参考资料

    1. android Palette使用详解
    展开全文
  • 对http://palette.vinnie.io/palette?url=<photo>执行 HTTP GET 请求 回复 { "lightVibrant": "<swatch>", "lightMuted": "<swatch>", "muted": "<swatch>", "darkMuted": "<swatch>", "darkVibrant": ...
  • OpenGLVC源代码:Palette

    2021-03-15 21:33:49
    OpenGL源代码:Palette 关键字:Palette,OpenGL
  • color-palette-源码

    2021-03-21 22:40:11
    color-palette
  • Android Palette

    2019-11-07 10:51:50
    Palette是什么? Palette是Google提供的一个类库,它能让你从图像中提取突出的颜色。这个类能提取以下几种颜色: Vibrant (有活力的) Vibrant dark(有活力的 暗色) Vibrant light(有活力的 亮色) Muted ...

    Palette是什么?

    Palette是Google提供的一个类库,它能让你从图像中提取突出的颜色。这个类能提取以下几种颜色:

    • Vibrant (有活力的)
    • Vibrant dark(有活力的 暗色)
    • Vibrant light(有活力的 亮色)
    • Muted (柔和的)
    • Muted dark(柔和的 暗色)
    • Muted light(柔和的 亮色)

    使用方式:

    • 引入依赖
    implementation 'com.android.support:palette-v7:28.0.0'
         **
         * 根据Url获取Bitmap
         * img_url 图片的网址
         */
        public void initNetWorkImage(final String imgUrl, final Context context) {
    
            new AsyncTask<Void, Void, Bitmap>() {
                @Override
                protected Bitmap doInBackground(Void... params) {
                    Bitmap bitmap = null;
                    try {
                        bitmap = Glide.with(context)
                                .asBitmap()
                                .load(imgUrl)
                                //360*480,原始大小设置为Target.SIZE_ORIGINAL
                                .submit(360, 480).get();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return bitmap;
                }
    
                @Override
                protected void onPostExecute(Bitmap bitmap) {
                    Palette.Builder builder = Palette.from(bitmap);
                    //异步任务---可能分析的图片会比较大或者颜色分布比较复杂,会耗时比较久,防止卡死主线程。
                    builder.generate(new Palette.PaletteAsyncListener() {
                        @Override
                        public void onGenerated(Palette palette) {
                            //暗、柔和的颜色
                            int darkMutedColor = palette.getDarkMutedColor(mThemeDefaultColor);//如果分析不出来,则返回默认颜色
                            //暗、柔和
                            int lightMutedColor = palette.getLightMutedColor(mThemeDefaultColor);
                            //暗、鲜艳
                            int darkVibrantColor = palette.getDarkVibrantColor(mThemeDefaultColor);
                            //亮、鲜艳
                            int lightVibrantColor = palette.getLightVibrantColor(mThemeDefaultColor);
                            //柔和
                            int mutedColor = palette.getMutedColor(mThemeDefaultColor);
                            //柔和
                            int vibrantColor = palette.getVibrantColor(mThemeDefaultColor);
                            //获取主颜色
                            int dominantColor = palette.getDominantColor(mThemeDefaultColor);
                            //获取某种特性颜色的样品
                            Palette.Swatch lightVibrantSwatch = palette.getVibrantSwatch();
                            //谷歌推荐的:图片的整体的颜色rgb的混合值---主色调
                            int rgb = lightVibrantSwatch.getRgb();
                            //谷歌推荐:图片中间的文字颜色
                            int bodyTextColor = lightVibrantSwatch.getBodyTextColor();
                            //谷歌推荐:作为标题的颜色(有一定的和图片的对比度的颜色值)
                            int titleTextColor = lightVibrantSwatch.getTitleTextColor();
                            //颜色向量
                            float[] hsl = lightVibrantSwatch.getHsl();
                            //分析该颜色在图片中所占的像素多少值
                            int population = lightVibrantSwatch.getPopulation();
                        }
                    });
                }
            }.execute();
    
    扩展方法
        /**
         * 当前颜色是否接近黑色
         *
         * @param rgb 颜色值
         * @return
         */
        public boolean isLightColor(int rgb) {
            int blue = Color.blue(rgb);
            int green = Color.green(rgb);
            int red = Color.red(rgb);
    
            double luma = red * 0.299 + green * 0.587 + blue * 0.114; // per ITU-R BT.709
    
            if (luma < 50) {
                // pick a different colour
                Log.i("isLightColor", "深色,当前的色值总合为:" + luma + ",Rgb颜色值为:" + rgb);
                return true;
            }
            return false;
        }
    
        /**
         * 给当前颜色值设置透明度
         *
         * @param percent 透明值
         * @param rgb     rgb
         * @return
         */
        protected int getTranslucentColor(float percent, int rgb) {
            int blue = Color.blue(rgb);
            int green = Color.green(rgb);
            int red = Color.red(rgb);
            int alpha = Color.alpha(rgb);
            alpha = Math.round(alpha * percent);
            return Color.argb(alpha, red, green, blue);
        }
    
        /**
         * 颜色加深算法
         */
        private int setColorBurn(int rgb, float val) {
            int r = (rgb >> 16) & 0xff;
            int g = (rgb >> 8) & 0xff;
            int b = rgb & 0xff;
            r = (int) Math.floor(r * (1f + val));
            g = (int) Math.floor(g * (1f + val));
            b = (int) Math.floor(b * (1f + val));
            return Color.rgb(r, g, b);
        }
    
        /**
         * 颜色浅化算法
         */
        private int setColorShallow(int rgb, float val) {
            int r = (rgb >> 16) & 0xff;
            int g = (rgb >> 8) & 0xff;
            int b = rgb & 0xff;
            r = (int) Math.floor(r * (1f - val));
            g = (int) Math.floor(g * (1f - val));
            b = (int) Math.floor(b * (1f - val));
            return Color.rgb(r, g, b);
        }

     

    展开全文
  • adobe-palette-源码

    2021-07-14 05:52:30
    土坯调色板 用于从下载和创建 OSX 调色板的节点命令行工具 安装 npm install -g adobe-palette 用法 Commands: palette --list palette --fetch <id>
  • Xamarin.iOS的Android的Palette API实现。 这种自由性使您可以从单个图像中提取颜色数组。 可用颜色 柔和的颜色 鲜明的色彩 浅哑色 鲜艳的色彩 暗哑色 深色鲜艳的色彩 样本 背景颜色为MutedColor,标题为...
  • 静态文件::artist_palette:FastSitePHP静态文件:artist_palette:
  • 静态文件::artist_palette:DataFormsJS静态文件:artist_palette:
  • palette Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build Run your tests npm run test Lints and fixes files npm ...
  • 这是一个演示应用程序,用于展示 Android Lollipop Palette 类的一些功能。 这是预览—— 执照 Copyright 2015 Peter Tackage Licensed under the Apache License, Version 2.0 (the "License"); you may not use...
  • 使用Palette API选择颜色  良好的视觉设计是app成功所必不可少的, 而色彩设计体系是设计的基础构成. Palette包是支持包, 能够从图片中解析出突出的颜色, 从而帮助你创建出视觉迷人的应用 你能够使用Palette包设计...
  • android palette

    2015-11-14 14:48:18
    所在包目录android-sdk-windows\extras\android\compatibility\v7\palette\libs private void extract(Bitmap bitmap) { // 提取颜色 // Palette palette = Palette.generate(bitmap); Palette.genera

    所在包目录

    android-sdk-windows\extras\android\compatibility\v7\palette\libs

     private void extract(Bitmap bitmap) {
    
            // 提取颜色
            // Palette palette = Palette.generate(bitmap); 
            Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
                @Override
                public void onGenerated(Palette palette) {
                    // 提取
                    // 有活力的颜色
                    Palette.Swatch vibrant = palette.getVibrantSwatch();   
                    // 有活力的暗色
                    Palette.Swatch darkVibrant = palette.getDarkVibrantSwatch();  
                    // 有活力的亮色
                    Palette.Swatch lightVibrant = palette.getLightVibrantSwatch();  
                    // 柔和的颜色
                    Palette.Swatch muted = palette.getMutedSwatch();   
                    // 柔和的暗色
                    Palette.Swatch darkMuted = palette.getDarkMutedSwatch();   
                    // 柔和的亮色
                    Palette.Swatch lightMuted = palette.getLightMutedSwatch();    
    
    
                    mTextView.setText("有活力的颜色");
                    if (vibrant != null) {
                        ll.setBackgroundColor(vibrant.getRgb());
                        mTextView.setBackgroundColor(vibrant.getRgb());
                        mTextView.setTextColor(vibrant.getTitleTextColor());
                    }
        }

    以下的分析 转载了, 再慢慢看有时间
    http://blog.csdn.net/yebo0505/article/details/43234113

    第一步,将图片缩小,再整个过程中,可以降低计算量和减少内存的使用,跟不缩小也能达到一样的效果
    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    /**
    * Scale the bitmap down so that it’s smallest dimension is
    * {@value #CALCULATE_BITMAP_MIN_DIMENSION}px. If {@code bitmap} is smaller than this, than it
    * is returned.
    */
    private static Bitmap scaleBitmapDown(Bitmap bitmap) {
    final int minDimension = Math.min(bitmap.getWidth(), bitmap.getHeight());

        if (minDimension <= CALCULATE_BITMAP_MIN_DIMENSION) {  
            // If the bitmap is small enough already, just return it  
            return bitmap;  
        }  
    
        final float scaleRatio = CALCULATE_BITMAP_MIN_DIMENSION / (float) minDimension;  
        return Bitmap.createScaledBitmap(bitmap,  
                Math.round(bitmap.getWidth() * scaleRatio),  
                Math.round(bitmap.getHeight() * scaleRatio),  
                false);  
    }  
    

    第二步,将缩小后的图片数据,放在一个int 数组里
    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    /**
    * Factory-method to generate a {@link ColorCutQuantizer} from a {@link Bitmap} object.
    *
    * @param bitmap Bitmap to extract the pixel data from
    * @param maxColors The maximum number of colors that should be in the result palette.
    */
    static ColorCutQuantizer fromBitmap(Bitmap bitmap, int maxColors) {
    final int width = bitmap.getWidth();
    final int height = bitmap.getHeight();

       final int[] pixels = new int[width * height];  
       bitmap.getPixels(pixels, 0, width, 0, 0, width, height);  
    
    
       return new ColorCutQuantizer(new ColorHistogram(pixels), maxColors);  
    

    }

    第三步,将这个int 数组由小到大排序,就相当于,将一张图片一样的颜色堆在一起,然后计算共有多少种颜色,每种颜色它是多大,这些是在一个叫ColorHistogram(颜色直方图)类里面计算的,用颜色直方图来说,就是共有多少柱颜色,每柱颜色有多高

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    /**
    * Class which provides a histogram for RGB values.
    */
    final class ColorHistogram {

    private final int[] mColors;  
    private final int[] mColorCounts;  
    private final int mNumberColors;  
    
    /** 
     * A new {@link ColorHistogram} instance. 
     * 
     * @param pixels array of image contents 
     */  
    ColorHistogram(final int[] pixels) {  
        // Sort the pixels to enable counting below  
        Arrays.sort(pixels);  
    
        // Count number of distinct colors  
        mNumberColors = countDistinctColors(pixels);  
    
        // Create arrays  
        mColors = new int[mNumberColors];  
        mColorCounts = new int[mNumberColors];  
    
        // Finally count the frequency of each color  
        countFrequencies(pixels);  
    }  
    
    /** 
     * @return 获取共用多少柱不同颜色 number of distinct colors in the image. 
     */  
    int getNumberOfColors() {  
        return mNumberColors;  
    }  
    
    /** 
     * @return 获取排好序后的不同颜色的数组  an array containing all of the distinct colors in the image. 
     */  
    int[] getColors() {  
        return mColors;  
    }  
    
    /** 
     * @return 获取保存每一柱有多高的数组 an array containing the frequency of a distinct colors within the image. 
     */  
    int[] getColorCounts() {  
        return mColorCounts;  
    }  
    
    //计算共用多少柱不同颜色  
    private static int countDistinctColors(final int[] pixels) {  
        if (pixels.length < 2) {  
            // If we have less than 2 pixels we can stop here  
            return pixels.length;  
        }  
    
        // If we have at least 2 pixels, we have a minimum of 1 color...  
        int colorCount = 1;  
        int currentColor = pixels[0];  
    
        // Now iterate from the second pixel to the end, counting distinct colors  
        for (int i = 1; i < pixels.length; i++) {  
            // If we encounter a new color, increase the population  
            if (pixels[i] != currentColor) {  
                currentColor = pixels[i];  
                colorCount++;  
            }  
        }  
    
        return colorCount;  
    }  
    
    //计算每一柱有多高  
    private void countFrequencies(final int[] pixels) {  
        if (pixels.length == 0) {  
            return;  
        }  
    
        int currentColorIndex = 0;  
        int currentColor = pixels[0];  
    
        mColors[currentColorIndex] = currentColor;  
        mColorCounts[currentColorIndex] = 1;  
    
        Log.i("pixels.length",""+ pixels.length);  
    
        if (pixels.length == 1) {  
            // If we only have one pixel, we can stop here  
            return;  
        }  
    
        // Now iterate from the second pixel to the end, population distinct colors  
        for (int i = 1; i < pixels.length; i++) {  
            if (pixels[i] == currentColor) {  
                // We've hit the same color as before, increase population  
                mColorCounts[currentColorIndex]++;  
            } else {  
                // We've hit a new color, increase index  
                currentColor = pixels[i];  
    
                currentColorIndex++;  
                mColors[currentColorIndex] = currentColor;  
                mColorCounts[currentColorIndex] = 1;  
            }  
        }  
    }  
    

    }
    第四步,将各种颜色,根据RGB转HSL算法,得出对应的HSL(H: Hue 色相,S:Saturation 饱和度L Lightness 明度),根据特定的条件,比如是明度L是否接近白色,黑色,还有一个判断叫isNearRedILine,解释是@return true if the color lies close to the red side of the I line(接近红色私密区域附近?).,然后根据这三个条件,过滤掉这些颜色,什么是HSL和RGB转HSL算法可以查看下百科,比较有详细说明

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    /**
    * Private constructor.
    *
    * @param colorHistogram histogram representing an image’s pixel data
    * @param maxColors The maximum number of colors that should be in the result palette.
    */
    private ColorCutQuantizer(ColorHistogram colorHistogram, int maxColors) {
    final int rawColorCount = colorHistogram.getNumberOfColors();
    final int[] rawColors = colorHistogram.getColors();//颜色数组
    final int[] rawColorCounts = colorHistogram.getColorCounts();//对应rawColors每一个颜色数组的大小

       // First, lets pack the populations into a SparseIntArray so that they can be easily  
       // retrieved without knowing a color's index  
       mColorPopulations = new SparseIntArray(rawColorCount);  
       for (int i = 0; i < rawColors.length; i++) {  
           mColorPopulations.append(rawColors[i], rawColorCounts[i]);  
       }  
    
       // Now go through all of the colors and keep those which we do not want to ignore  
       mColors = new int[rawColorCount];  
       int validColorCount = 0;  
       for (int color : rawColors) {  
           if (!shouldIgnoreColor(color)) {  
               mColors[validColorCount++] = color;  
           }  
       }  
       Log.d("mColors length", ""+mColors.length);  
       if (validColorCount <= maxColors) {  
           // The image has fewer colors than the maximum requested, so just return the colors  
           mQuantizedColors = new ArrayList<Swatch>();  
    
           for (final int color : mColors) {  
               mQuantizedColors.add(new Swatch(color, mColorPopulations.get(color)));  
           }  
       } else {  
           // We need use quantization to reduce the number of colors  
           mQuantizedColors = quantizePixels(validColorCount - 1, maxColors);  
       }  
    

    }
    [java] view plaincopy在CODE上查看代码片派生到我的代码片


    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    这里截了张图看看
    [java] view plaincopy在CODE上查看代码片派生到我的代码片

    第五步,根据是各种亮度,饱和度的取值范围,比如有活力的暗色,有活力的亮色,柔和的颜色,柔和的暗色,柔和的亮色,找到对应的颜色
    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    private Swatch findColor(float targetLuma, float minLuma, float maxLuma,
    float targetSaturation, float minSaturation, float maxSaturation) {
    Swatch max = null;
    float maxValue = 0f;

       for (Swatch swatch : mSwatches) {  
           final float sat = swatch.getHsl()[1];  
           final float luma = swatch.getHsl()[2];  
    
           if (sat >= minSaturation && sat <= maxSaturation &&  
                   luma >= minLuma && luma <= maxLuma &&  
                   !isAlreadySelected(swatch)) {  
               float thisValue = createComparisonValue(sat, targetSaturation, luma, targetLuma,  
                       swatch.getPopulation(), mHighestPopulation);  
               if (max == null || thisValue > maxValue) {  
                   max = swatch;  
                   maxValue = thisValue;  
               }  
           }  
       }  
    
       return max;  
    

    }

    展开全文
  • Palette是一个类似调色板的工具类,根据传入的bitmap,提取出主体颜色,使得图片和颜色更加搭配,界面更协调。Palette 可以从一张图片中提取颜色,我们可以把提取的颜色融入到App UI中,可以使UI风格更加美观融洽。...
  • stylus-palette-源码

    2021-06-13 20:23:43
    var palette = require('stylus-palette'); var data = require(__dirname + '/palettes.json'); var server = connect(); function compile(str, path) { return stylus(str) .set('filename', p
  • import { createMaterialPalette } from "react-native-material-palette" ; const palette = await createMaterialPalette ( { uri : 'http://dummySite/images/yummy.jpg' } ) ; 与MaterialPaletteProvider和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,207
精华内容 17,282
关键字:

palette