java rgb 黑色_Java实现图片亮度自动调节(RGB格式)
最关键的获取亮度公式:
float luminance = (red * 0.2126f + green * 0.7152f + blue * 0.0722f) / 255;
private BufferedImage adjustBrightness(BufferedImage imgsrc) {
int width = imgsrc.getWidth();
int height = imgsrc.getHeight();
int totalPixels = width * height;
int[] intValues = new int[totalPixels];
imgsrc.getRGB(0, 0, width, height, intValues, 0, width);
int pixelLuminanceLowerThanBound = 0;
int pixelLuminanceHigherThanBound = 0;
float luminanceSum = 0.f;
for (int i = 0, j = intValues.length; i < j; i++) {
int val = intValues[i];
int red = (val >> 16) & 0xFF;
int green = ((val >> 8) & 0xFF);
int blue = val & 0xFF;
float luminance = (red * 0.2126f + green * 0.7152f + blue * 0.0722f) / 255;
if (luminance < lowerBound) {
pixelLuminanceLowerThanBound++;
}
if (luminance > upperBound) {
pixelLuminanceHigherThanBound++;
}
luminanceSum += luminance;
}
float threshold = (totalPixels * pixelAdjustmentRatio);
if (!(pixelLuminanceLowerThanBound > threshold) && !(pixelLuminanceHigherThanBound > threshold)) {
return imgsrc;
}
float luminanceMean = luminanceSum / (totalPixels);
float brightnessDiff = (float) (universalBrightness) / 100 - luminanceMean;
float expandFactor = (float) (Math.pow(1. + brightnessDiff, 2.5));
RescaleOp rescaleOp = new RescaleOp(expandFactor, 35, null);
rescaleOp.filter(imgsrc, imgsrc);
// imgsrc.setRGB(0, 0, width, height, intValues, 0, width);
return imgsrc;
}
java rgb 黑色_Java实现图片亮度自动调节(RGB格式)相关推荐
- java 盖章透明_java实现图片上传后裁剪,把白色背景变成透明图(电子印章)
应用场景:企业在白纸上盖上印章,然后软件实现透明的电子印章,在后续业务流程中使用! A4纸-----------------------------------------处理后----------- ...
- java获取图片像素点的rgb值_java获取图片每个像素点的RGB
/** * 获取图片RGB数组 * @param filePath * @return */ public int[][] getImageGRB(String filePath) { File fi ...
- java thumbnails 中心点_java Thumbnails 图片处理的使用
在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...
- java 雪花特效_java实现图片飘雪花的特效
一)制作要点 1.多线程的使用 2.类java.util.Random的使用 (二)嵌入Applet的HTML页面源代码 SnowPic 注意:上面的图片中java的类名为SnowPic 注意大小写, ...
- java盒图_java合成图片
package com.pbids.sanqin.util; import javax.imageio.ImageIO; import java.awt.*; import java.awt.imag ...
- java 水印 位置_Java实现图片加水印且控制位置和透明度
Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...
- java照片拍摄时间_java读取图片的(尺寸、拍摄日期、标记)等EXIF信息
主要代码如下: package com.test; import java.io.File; import java.io.IOException; import java.util.Iterator ...
- java thumbnails 内存_Java修改图片尺寸,总是报内存溢出怎么解决?
项目需求:有很多尺寸很大的图片(图片大小可能几十MB,甚至上百MB),需要等比例缩小它们的尺寸,相当于生成缩略图. 例如:原图8268x6201,需要压缩成400x300. 我现在的方法:将图片整个读 ...
- java image 透明_Java实现图片透明效果
Java实现图片透明效果,从演示截图可看到,上层图片与下层图片互相重叠,也就是上层图片透明了,看到了下层以的图片,具体的代码实现: public class HalfTransparentImageD ...
最新文章
- 迭代器、生成器、面向过程编程思想
- 文巾解题 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
- UIColor之【扩展:#FFFFFF -UIColor】
- JAVA的WebService规范JAX-WS
- Redis总结(四)Redis 的持久化
- 人机接口要学哪些计算机语言,智能人机接口
- matlab仿真环境,高低温环境模拟系统MATLAB仿真研究
- 从头搭建一个深度学习框架
- linux创建了目录复制不存在,Linux:复制并创建目标目录,如果它不存在
- leetcode-345-Reverse Vowels of a String
- h3c交换机怎么设置虚拟服务器,H3C交换机配置 | 如何实现两个网段主机与外部通信...
- 大数据时代能否保证足够的安全
- 关于Java锁机制面试官会怎么问,深刻易懂
- HTTP、Asp.net管道与IIS
- php整数型转字符串,php如何将整数转为字符串
- 静态链接库和动态链接库
- 2019年全球卫星遥感行业现状、融资及卫星遥感行业发展趋势分析:即时化、网络化、个性化、多样化(转载)
- 下班后10条最佳放松方法
- jude 使用学习-2018
- php图片生成加密pdf文件,php生成PDF格式文件并且加密
热门文章
- R语言ggplot2可视化:绘制堆叠的密度图(Stacked Area Chart)
- R语言switch语句语法、实战:Switch语句用来处理嵌套的if else处理起来比较困难或者麻烦的条件判断问题
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包在散点图的侧面添加辅助图形、并使用NULL将不需要可视化的侧面留白
- Error in Math.factor(x) : ‘abs’ not meaningful for factors
- R卡方检验(CHI-SQUARE TEST)
- R绘制面积图(area plot)
- 综述 | 语言分析技术在社会计算中的应用
- fiash星空动画制作_三维动画制作的详细流程
- windows10下mysql-8.0.21的安装和使用
- Linux下的简单socket编程示例