使用Palette来对图片进行颜色提取
2017-04-27 14:32
351 查看
使用Palette来对图片进行颜色提取
文章参考Palette 颜色提取使用详解Palette是Google在5.0中引入的来获取bitmap颜色值的一个工具类,为了兼容以前的版本,所以放在Support v7 Library中,在使用该类之前,需要在gradle中添加引用
compile 'com.android.support:palette-v7:25.3.1'
使用:
Palette是一个调色板,通过传入一个bitmap对象来获取一个颜色列表,
首先要获取一个Palette实例,
Palette.from(bitmap).generate()
Palette.generate(bitmap)
Palette.generate(bitmap, mMaxColors)
其中maxColor是颜色值的范围,如果是风景画一般范围在10-16之间,如果是人像的话则范围应增加到24,该值默认为16
获取到实例后就需要获取到一个采集的样本(swatch),Google一共提供了6种采集的样本
其中分别是:
Palette.Swatch a = palette.getVibrantSwatch();//有活力
Palette.Swatch b = palette.getDarkVibrantSwatch();//有活力 暗色
Palette.Swatch c = palette.getLightVibrantSwatch();//有活力 亮色
Palette.Swatch d = palette.getMutedSwatch();//柔和
Palette.Swatch e = palette.getDarkMutedSwatch();//柔和 暗色
Palette.Swatch f = palette.getLightMutedSwatch();//柔和 亮色
拿到颜色采集的样本后就可以拿到对应的颜色了,其中颜色取值有这么几个常用的
swatch.getBodyTextColor();//内容颜色
swatch.getTitleTextColor();//标题颜色
swatch.getRgb();//rgb颜色
在获取swatch的时候有可能为空,所以在获取颜色的时候一定要进行判空操作
下面是一小段示例代码
Palette p = Palette.from(convertViewToBitmap(view)).generate(); Palette.Swatch swatch = p.getVibrantSwatch(); if (swatch != null) { tvShow.setBackgroundColor(swatch.getRgb()); } public Bitmap convertViewToBitmap(View view) { view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); return bitmap; }
下面是示例样式图
相关文章推荐
- [Material Design]使用Palette类提取图片的颜色信息
- 使用Palette提取图片的颜色信息
- Palette颜色提取使用详解
- 使用Palette类提取图片的颜色信息
- 如何使用Palette提取Bitmap的颜色
- 使用opencv对图片进行边缘特征提取
- 使用GirdView异步加载图片,并对图片进行颜色矩阵变化
- Palette的使用(提取一个Bitmap 中突出颜色)
- Android开发学习之路-Palette颜色提取工具类使用
- [置顶] 使用SIFT特征提取和K-Means方法对图片进行分类
- 使用CDC进行颜色/图片合成(透明处理)
- Palette使用,从图像中提取突出的颜色
- 用Palette提取图片颜色
- 使用Palette类提取图片的颜色信息
- 使用CDC进行颜色/图片合成(透明处理)
- 减小网络传输图片大小,使用gzip进行压缩
- 使用SecureCRT对Linux vim进行颜色设置【可用的.vimrc文件内容】
- FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片的后期处理等)、以及安全性进行初步的阐述。
- 使用C#和Excel进行报表开发(五)-操作单元格边框和颜色
- 使用Criteria进行分页查询通用方法提取