Android 获取图片颜色
需求:根据图片的颜色显示不同的背景颜色
解决方法1.使用谷歌官方的api中提供的方法Palette来实现。
缺点:不能保证颜色获取的到;也有可能获取部分颜色并不是想要的效果
2.比较笨的方式:遍历整张图片的像素点,将整个像素点的颜色值(去掉白色和纯黑色值)保存下来,选出颜色值最多的一个做为背景色。
a.方法:getPicturePixel:获取像素点的颜色值
/*** 获得图片的像素方法** @param bitmap*/public static ArrayList<Integer> getPicturePixel(Bitmap bitmap) {int width = bitmap.getWidth();int height = bitmap.getHeight();// 保存所有的像素的数组,图片宽×高int[] pixels = new int[width * height];bitmap.getPixels(pixels, 0, width, 0, 0, width, height);ArrayList<Integer> rgb=new ArrayList<>();for (int i = 0; i < pixels.length; i++) {int clr = pixels[i];int red = (clr & 0x00ff0000) >> 16; // 取高两位int green = (clr & 0x0000ff00) >> 8; // 取中两位int blue = clr & 0x000000ff; // 取低两位
// Log.d("tag", "r=" + red + ",g=" + green + ",b=" + blue);int color = Color.rgb(red, green, blue);//除去白色和黑色if (color!=Color.WHITE && color!=Color.BLACK){rgb.add(color);}}return rgb;}
b.删选出色值并赋值给imageview
ArrayList<Integer> picturePixel = BitmapUtil.getPicturePixel(bitmap);//计数相同颜色数量并保存HashMap<Integer,Integer> color2=new HashMap<>();for (Integer color:picturePixel){if (color2.containsKey(color)){Integer integer = color2.get(color);integer++;color2.remove(color);color2.put(color,integer);}else{color2.put(color,1);}}//挑选数量最多的颜色Iterator iter = color2.entrySet().iterator();int count=0;int color=0;while (iter.hasNext()) {Map.Entry entry = (Map.Entry) iter.next();int value = (int) entry.getValue();if (count<value){count=value;color= (int) entry.getKey();}}if (color==0){return;}Bitmap bg = Bitmap.createBitmap(ll_bind.getWidth(), ll_bind.getHeight(),Bitmap.Config.ARGB_8888);bg.eraseColor(color);//填充颜色ll_bind.setImageBitmap(bg);
Android 获取图片颜色相关推荐
- android获取图片缩略图,Android系获取图片和视频的缩略图
获取手机里视频缩略图: public static Bitmap getVideoThumbnail(ContentResolver cr,Uri uri) { Bitmap bitmap = nul ...
- android 获取图片
Android获取手机或者内存卡里面的图片有两种方式 1.这是通过一种action Intent intent=new Intent();intent.setAction(Intent.ACTION_ ...
- php拍照从手机相册中选择,Android获取图片:拍照和从相册中选择
概述 在Android开发中获取图片主要包括如下两种方式: 打开相机拍照 从图库中选择图片 一.打开相机拍照 打开相机拍照主要包括如下几个部分: 权限申请 打开摄像头 拍照后传回数据处理 1. 权限申 ...
- android 图片拍照,Android获取图片拍照时间
为什么写这篇文章是因为今早有个需求需要获取图片拍照时的时间进行一些处理,有些方法参数名忘记了,所以谷歌百度了一下,Android 图片 时间,Android 图片 拍照 时间,这几个关键字居然无法搜索 ...
- android 获取图片上某一个文字位置_android 获取手机中的所有图片或某一目录下的图片方法...
获取手机中的所有图片,并过滤获取某一目录下的图片.(注释掉的代码可以按照目录分组) private void getAllPhotoInfo() { new Thread(new Runnable() ...
- Android 获取图片尺寸大小的方法
一.获取图片大小有两张情况代码如下: package com.jhq.picdemo;import android.Manifest; import android.content.pm.Packag ...
- android获取图片背景色,android案例--图片取色并让图片融入背景色
需求背景分析: 产品和美工给了个根据专辑封面取主题色做背景,并且专辑封面还要融入背景的效果图,一开始看到取色觉得简单啊,不就是之前看过的palette嘛,可是专辑封面渐变消失融入背景怎么做呢,我们一步 ...
- Android 获取图片尺寸大小
文章目录 1.简介 2.功能实现 1)添加sd 卡读写权限 2).功能代码 3.log显示 4.不同位置获取图片的路径的转化 Bitmap 1) drawable 里面 2)assets 文件 3)S ...
- android 获取图片的真实地址
在开发中我们需要获取手机上的图片信息, 系统提供的有时候是一个可以访问展示的uri地址,但是当我们需要对图片进行一定的操作时比如 删除.这个时候去删除是无法操作的,因为系统提供的地址并不是对应图片在手 ...
最新文章
- Django xadmin 后台自定义action 动作
- 1.9 函数-C++编程模块
- 深度学习和目标检测系列教程 18-300:关于yolo、voc格式标签转化问题
- Gym100187I
- 1109. 航班预订统计
- opencv opencl加速_回放 | OpenCV Webinar 3:OpenCV深度学习应用与原理分析
- 为 Nginx 添加模块
- POJ2931不平等博弈
- 共享python代码模块
- Java 反射Reflection总结二
- 复杂网络-无标度网络matlab代码实现
- 如何使用XShell将本机文件上传到虚拟机上?
- 按键精灵文字替换,文字查找代码
- JAVA毕设项目微博系统网站(java+VUE+Mybatis+Maven+Mysql)
- 辞旧送吉虎,迎新接玉兔,祝大家新年快乐!
- vue中的几个动效网站
- EasyExcel操作API与示例
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数002·AI人工智能
- java环境jdk配置
- 不敲代码用ChatGPT开发一个App