RGB转换测试对比度的核心算法:

开发项目过程中,对于手机屏幕截图,需要对获取到的截图的任意部分进行区域颜色对比度的识别操作,由此判定任意指定区域是否满足某对比度基本标准,但是该功能在网上任何地方都没有找到过Java方面的代码,于是根据RGB转换测试的原理:即获取每个像素点的RGB,通过RGB对比度定义公式进行像素点的集合换取。

通过上述思路,开发了一下核心功能代码。代码如下,可以配合注释理解。由于项目保密性原因,只摘取一部分核心逻辑代码。其实核心就是通过Java自带的库进行像素点的获取,然后通过数学公式进行处理。读者感兴趣的话可自行查阅转换公式,从而达到给定任意某区域的手机截图获取颜色对比度。

  image = ImageIO.read(file);int width=image.getWidth();int height=image.getHeight();int minx=image.getMinX();int miny=image.getMinY();//首先读入图片,然后指定区域。System.out.println("width="+width+",height="+height+".");System.out.println("minx="+minx+",miniy="+miny+".");for(int i=minx;i<width;i+=5) {flag = 1;for(int j=miny;j<height;j+=1){flag =1;int pixel=image.getRGB(i,j);r1 = (pixel &  0xff0000) >> 16;g1 = (pixel &  0xff00) >> 8;b1= (pixel &  0xff);// System.out.println(i+"=i,"+j+"=j,("+rgb1[0]+","+rgb1[1]+","+rgb1[2]+")");//获取每个像素点的RGB。}luminanace(r, g, b) {var a = [r, g, b].map(function (v) {v /= 255;return v <= 0.03928? v / 12.92: Math.pow((v + 0.055) / 1.055, 2.4);});return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;},//进行公式转换 获取对比度(不是Java语言)var brightest = Math.max(lum1, lum2);
var darkest = Math.min(lum1, lum2);
//进行对比度处理并输出结果。
return (brightest + 0.05) / (darkest + 0.05);

Android开发:使用Java对手机截图图片进行任意区域的颜色对比度处理操作相关推荐

  1. Android开发笔记(九十四)图片的基本加工

    位图管理Bitmap Android上的图形使用Drawable类,而位图管理则使用Bitmap类,java上与之对应的是awt包中的BufferedImage.Android开发中有需要对jpg.p ...

  2. android 最新 九宫格,Android开发中怎么显示一个九宫格图片

    Android开发中怎么显示一个九宫格图片 发布时间:2020-11-21 15:09:33 来源:亿速云 阅读:86 作者:Leah 本篇文章给大家分享的是有关Android开发中怎么显示一个九宫格 ...

  3. Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi

    Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi ...

  4. 简单的入门Android开发和Java语言基础[图]

    简单的入门Android开发和Java语言基础[图] 前言: 去年年底到今年年初,我做过简单的智能家居,也实现过一些简单的直连和远程的智能家居.于是就将最简单的通信发布出来:智能家居简单实现-使用ES ...

  5. Android开发教程JAVA基础(汇总)

    Android游戏开发视频教程(汇总) Android开发教程JAVA基础之Java 概述 Android开发教程JAVA基础之标示符.关键字1 Android开发教程JAVA基础之标示符.关键字2 ...

  6. 解决android开发在大屏手机图片出现内存溢出

    解决android开发在大屏手机图片出现内存溢出 http://jingyan.baidu.com/article/ed2a5d1f3191d109f6be17e8.html

  7. Android开发笔记(七十七)图片缓存算法

    ImageCache 由于手机流量有限,又要加快app的运行效率,因此好的app都有做图片缓存.图片缓存说起来简单,做起来就用到很多知识点,可算是集Android技术之大全了.只要理解图片缓存的算法, ...

  8. Android开发规范[Java+android]

    说明:该文档由阿里<Java开发规范>和<Android开发规范>整理而来  [强制]必须遵守,违反本约定或将会引起严重的后果:  [推荐]尽量遵守,长期遵守有助于系统稳定 ...

  9. Android开发笔记(九十七)图片的特效处理

    图片特效用到的函数 本文讲述的图片特效处理包括:怀旧.光照.光晕.底片.浮雕.模糊.锐化.黑白.冰冻.素描,所有这些特效都是基于一定的算法,对图像每个点的RGB值进行计算,并汇总所有点的计算结果生成新 ...

最新文章

  1. Windows7操作系统自定义运行命令(简单方法之二)
  2. Linux下安装mysql(2) 及常见问题解决(CentOS)
  3. 性能分析工具 Android TraceView
  4. 机器学习 + 深度学习 + 计算机视觉 + 自然语言处理: 原理, 实践以及应用 --- 干货分享(持续更新…)
  5. 从零开始学习OpenCL开发(一)架构
  6. super与this关键字的区别
  7. 库-libuv 和 libev的对比
  8. docker安装gitlab_docker 安装部署gitlab
  9. Js捕获地址栏信息,根据地址栏信息来判断是否要显示页面中的信息
  10. cimiss数据_CIMISS数据下载小助手
  11. 更改计算机睡眠时间注册表,如何通过修改注册表开启/关闭系统休眠?
  12. 【单片机】2.1 AT89S52单片机的硬件组成
  13. 在GIS中如何绘制胡焕庸线
  14. 计算机操作系统实验之进程调度(一)轮转调度法(C语言)
  15. 鼠标到达a标签时变成手型
  16. Cocos2d之Box2d基础知识
  17. js数组要用的方法:push、pop、unshift、shift、splice、reverse、sort、concat、join、slice、indexof、foreash、map、filter
  18. 【H5+来实现】uni-app框架如何跳转到第三方url或调用第三方APP
  19. Studio 3T 试用期破解(含破解补丁) - 解决办法
  20. 基因数据分析主流软件与基因预测方法步骤-搬运工

热门文章

  1. 2020年平面设计行业前景如何?
  2. 各地抓紧向“全光网”时代迈进,提速智慧城市建设
  3. MySQL8.0修改root密码
  4. ARIMA 算法解析,一个通俗的解释
  5. 【开发者必看】【push kit】推送服务典型问题合集1
  6. 五款必备iPad少儿科普知识类应用
  7. 神州租车java面试题-2016
  8. python的django框架从入门到熟练【保姆式教学】第一篇
  9. C++图像处理OpenCV之屠龙宝刀第12篇 —— 将 3D 输入转换为 2D 表示形式的模棱两可之处?
  10. mySql使用正则表达式匹配字符串